Я пытаюсь вставить из одной таблицы в другую, используя
DECLARE @IDOffset int;
SELECT @IDOffset = MAX(ISNULL(ID,0)) FROM TargetTable
INSERT INTO TargetTable(ID, FIELD)
SELECT [Increment] + @IDOffset ,FeildValue
FROM SourceTable
WHERE [somecondition]
TargetTable.ID не является столбцом идентификатора, поэтому я должен найти способ его автоматического увеличения.
Я знаю, что я могу использовать курсор или создать переменную таблицы с столбцом идентификации и поле FieldValue, заполнить это, а затем использовать его в моем insert into...select
, но это не очень эффективно. Я попытался использовать функцию ROW_NUMBER для увеличения, но у меня действительно нет законного поля ORDER BY в SourceTable, который я могу использовать, и хотел бы сохранить исходный порядок SourceTable (если возможно).
Кто-нибудь может что-нибудь предложить?