首页 > 解决方案 > 克隆行并维护对克隆行的引用

问题描述

我想从表中克隆一些行,必须使用特定条件选择行,但我还需要保存在临时表中 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 连接和检索的记录,确保再次检索记录按destinationRowID顺序检索,这样新记录和旧记录的顺序必须相同,并且更新我'将获得@tempTable正确的sourceRowIDdestinationRowID

标签: sql-serversql-server-2008-r2

解决方案


推荐阅读