我在表A中插入了几行,其中instead of insert
触发器和identity
列。
然后我需要在表B中插入这么多行,其中每一行都包含对插入A中的行的引用。
问题是,我不能在A上使用output
子句,因为身份不会被设置(由于触发器)。
我知道一行我可以使用@@identity
,只要在A中插入行是触发器中的最后一个插入语句,但这里我说的是多行。
我怎样才能做到这一点?
答案 0 :(得分:0)
我使用了这样的代码(你可以在OUTPUT子句中使用表变量)
declare @T table (requestID int);
INSERT <tableA> (<fields>)
OUTPUT inserted.RequestID into @T
VALUES( <fieldValues1> ),( <fieldValues2> ) ;
Insert <tableB> (ID) select RequestID from @T;