[英]sql output clause error
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.