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