我要从表中克隆某些行,必须使用特定条件选择该行,但我还需要将N对(sourceRowID,destinationRowID)保存在一个临时表中
我尝试使用OUTPUT
,但无法使用源行的字段
INSERT INTO myTable(Value1, Value2)
OUTPUT myTable.ID, Inserted.ID
INTO @tempTable(sourceRowID, destinationRowID)
SELECT Value1, Value2
FROM myTable
WHERE Value2 > 10
有解决方案吗?不幸的是,我无法使用SQL Server 2008
更新: 现在,这是我的解决方案:
首先,我使用OUTPUT
指令将插入的记录写入@tempTable
,确保插入的记录按ID
进行排序
在这一点上,我拥有@tempTable
,例如
sourceRowID | destinationRowID
-------------------------------
NULL | 12
NULL | 15
NULL | 16
NULL | 23
然后我更新@tempTable
,再次检索具有相同WHERE
条件的同一记录,并加入@tempTable
和RowNumber检索到的记录,以确保再次按{{1 }},新记录和旧记录的顺序必须相同,并且通过更新,我将获得具有正确的destinationRowID
和@tempTable
sourceRowID