16
我有一個表項目(項目ID,姓名,...)其中的ItemID是自動生成的身份T-SQL:在OUTPUT子句INSERT原值
我想行添加到這個表從同一張表中選擇。 並保存到表變量中OriginalItemID和NewlyGeneratedID之間的引用。
所以我希望它看起來像下面這樣:
DECLARE @ID2ID TABLE (OldItemID INT, NewItemID INT);
INSERT INTO Items OUTPUT Items.ItemID, INSERTED.ItemID INTO @ID2ID
SELECT * FROM Items WHERE Name = 'Cat';
但Items.ItemID
顯然不能在這裏工作。是否有一種解決方法使OUTPUT從SELECT語句中獲取原始ItemID?
你必須有對目標表有點像'OldItemID',你可以用你的「舊」項目ID值填寫。另外:如果該ItemID是自動生成的,則應該在** INSERT INTO Items ......中顯式指定**列的列表(除Itemid之外的所有內容)以及相應的SELECT (列表列)FROM Items ...'語句。否則,您將選擇「舊」自動生成的ItemID值並嘗試再次將這些值插入到自動生成的列中 - 這很可能不會起作用 – 2011-05-20 16:39:33
好點。我的例子中有一個錯誤。無論如何,問題依然存在。 – Evgenyt 2011-05-22 15:16:51