我有一个结合了两个表的视图。当我在视图中插入时,触发器使用NEXT VALUE FOR MySequence
获取主键/聚簇索引值。
然后,触发器使用生成的密钥和Inserted
表中的值插入到两个表中。一切正常。
当使用该视图的应用程序执行带有output子句的插入时,会出现此问题。像这样:
DECLARE @InsertedIds table (MyViewId int, ValueForTheFirstTable int)
INSERT INTO MyView (ValueForTheFirstTable, ValueForTheSecondTable )
OUTPUT Inserted.MyViewId, Inserted.ValueForTheFirstTable into @InsertedIds
VALUES ('FirstTableValue', 'SecondTableValue')
ValueForTheFirstTable会返回正确的值。但MyViewId(键)为空。 (我真的希望它是其他任何东西,因为它不知道我生成的密钥。)
我的问题是,如何修改我的INSTEAD OF INSERT
触发器以使OUTPUT
子句包含我生成的序列号值?
我知道价值,我只需要一种方法将其反馈给SQL Server,以便它可以将它提供给任何OUTPUT子句。