我正在尝试使用语句从一个表插入到另一个表中:
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不是自增列,这就是为什么我必须找到一种方法来自动增加它。
我知道可以使用光标或创建一个带有identity列和FieldValue字段的表变量,填充该变量,然后在我的insert into...select
中使用它,但这并不是很有效率。我尝试使用ROW_NUMBER函数来递增,但是在SourceTable中我没有一个合法的ORDER BY字段可以使用,并且希望保留SourceTable的原始顺序(如果可能的话)。
有人能提供任何建议吗?