Я пытаюсь вставить из одной таблицы в другую, используя
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 (если это возможно).
Кто-нибудь может что-нибудь предложить?