小编Phi*_*iop的帖子

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

我有一堆表需要克隆来自的子集.我已经使用了许多循环来递归地完成了这项任务,但是它很慢.

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

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

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)
Run Code Online (Sandbox Code Playgroud)

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

sql t-sql

5
推荐指数
0
解决办法
231
查看次数

标签 统计

sql ×1

t-sql ×1