在INSERT期间,使用OUTPUT从表中返回新插入的Id和原始Id

时间:2014-06-11 14:34:17

标签: sql tsql

我有一堆表需要克隆来自的子集。我已经使用了许多循环来递归地完成了这项工作,但是速度非常慢。

问题是表格上的层次结构是使用INT IDENTITY(1,1)列构建的,这意味着我必须将旧的Id映射到新的Id等。

我希望能够批量克隆每个阶段并使用OUTPUT语句执行此映射,但我无法实现此目的,因为我无法访问FROM表中的OUTPUT表{1}}陈述。下面的示例显示了我想要实现但不起作用的内容。

CREATE TABLE #NewIds (IdNew INT, IdOld INT)

INSERT INTO IdTest
OUTPUT inserted.Id, i.Id
INTO #NewIds
SELECT id
FROM IdTest i
WHERE id IN (SELECT Id FROM #IdTestsToClone)

任何人都可以向我解释如何让这个工作吗?

0 个答案:

没有答案