t1 有一个自动生成的主键,称为pkId
INSERT INTO t1( title, summary)
OUTPUT inserted.pkId, t2.id INTO @IdTable(New_Id, Old_Id)
SELECT t2.title, t2.summary
FROM t2
有人可以告诉我为什么这不起作用吗?
我收到错误无法绑定多部分标识符“t2.id”。
t1 有一个自动生成的主键,称为pkId
INSERT INTO t1( title, summary)
OUTPUT inserted.pkId, t2.id INTO @IdTable(New_Id, Old_Id)
SELECT t2.title, t2.summary
FROM t2
有人可以告诉我为什么这不起作用吗?
我收到错误无法绑定多部分标识符“t2.id”。
来自评论
它不起作用,因为您没有在 SELECT 语句中选择 t2.id 。为了使它起作用,您应该将 t2.id 添加到您的语句中,但这也需要您在 t1 中插入此 ID,这(我假设)不是您需要的。我仍在思考如何优雅地解决这个问题。
不是一个优雅的解决方案,但最简单的可能是
t2ID
列到t1
INSERT
以包括t2ID
(不使用OUTPUT
子句)@IdTable
ALTER TABLE t1 ADD COLUMN t2ID INTEGER NULL
GO
INSERT INTO t1( title, summary, t2ID)
SELECT t2.title, t2.summary, t2.ID
FROM t2
INSERT INTO @IdTable
SELECT pkID, t2ID
FROM t1
WHERE t2ID IS NOT NULL
GO
ALTER TABLE t1 DROP COLUMN t2ID
GO