Tsql insert触发器中的Merge语句是否清除标识值?
我发出的sql语句是Tsql insert触发器中的Merge语句是否清除标识值?,tsql,sql-server-2014,Tsql,Sql Server 2014,我发出的sql语句是 INSERT INTO Table1 (.....; SELECT SCOPE_IDENTITY(); 表1有一个标识列。这非常有效,在C#中,我将获得新分配的标识值 然后我添加了一个insert、update触发器,其中有一个MERGE语句,可以插入或更新另一个表中的记录。另一个表中没有任何标识。当我向表1添加新行时,合并的插入部分在触发器中触发 现在,第一条SQL语句返回null,我无法获取Table1的标识值。我试过了 SELECT @@Identity
INSERT INTO Table1 (.....;
SELECT SCOPE_IDENTITY();
表1
有一个标识列。这非常有效,在C#中,我将获得新分配的标识值
然后我添加了一个insert、update触发器,其中有一个MERGE
语句,可以插入或更新另一个表中的记录。另一个表中没有任何标识。当我向表1
添加新行时,合并的插入部分在触发器中触发
现在,第一条SQL语句返回null,我无法获取Table1
的标识值。我试过了
SELECT @@Identity
甚至
SELECT IDENT_CURRENT('Table1')
但它们都返回null。如果我在触发器中注释掉合并,我将开始返回标识值
如何获取标识值或使合并停止清除它?这很奇怪,因为SCOPE_identity()应该在我阅读文档时返回Table1标识。尝试插入输出.ID