Как сделать SQL Server фиксацией вставок в куски? Мне нужно скопировать большое количество строк из старой БД в новую таблицу, и она имеет несколько проблем:SQL insert into - for loop
он принимает возрасты, чтобы закончить, и я не вижу ни одной строки в моей таблице до тех пор, завершена вся транзакция.
мой файл журнала растет как сумасшедший, и это, вероятно, закончится вне пространства.
Если что-то ломается посередине, я должен повторить все.
Если добавить SET ROWCOUNT 500
, я могу ограничить количество строк, но я не знаю, как продолжить с последним добавленным идентификатором. Я могу запросить новую таблицу, чтобы увидеть, что было вставлено последним, но я не уверен, что это правильно. И это немного сложно, потому что мой пункт where
не использует столбец ID
, поэтому я не знаю, как точно узнать, где продолжить.
Каков наилучший подход для этого? Есть ли «цикл» или что-то, что позволяло бы мне совершать каждый раз в то время?
Я использую SSMS для SQL Server 2008 R2.
Что касается [объемной вставки] (http://msdn.microsoft.com/en-us/library/ms188365 (v = sql.105) .aspx)? – danihp
@ danihp: можно ли это фильтровать? Я хочу сказать, добавить предложение 'where'? Скорее всего, копируются целые таблицы. – Lou
Возможно, это может помочь вам: http://msdn.microsoft.com/en-us/library/ms190422(v=sql.105).aspx. Также вам недостаточно «BATCHSIZE = batch_size» (вместо этого где предложение)? – danihp