2010-04-15 73 views
1

作为事务的一部分,我通过服务器链接修改表中的行,所以必须在我的sproc中指定“SET XACT_ABORT ON”,否则它将不会执行。现在我注意到SCOPE_IDENTITY()返回NULL,这大概是与分布式事务范围有关的事情?SQL Server 2005中的分布式事务

有谁知道为什么以及如何解决?

回答

1

@@IDENTITY

的@@ IDENTITY函数 的范围是在其上运行在本地服务器上 当前会话。此功能 不能应用于远程服务器或已连接的 服务器。到不同的服务器上获取的标识值 ,该远程或 链接服务器上执行 存储过程,并且具有存储 过程(其在远程或链接 服务器的 上下文中执行)收集的标识值和 将其返回到本地服务器的 上的主叫连接。

并注意,尽管它在周围的段落中讨论了IDENT_CURRENT和SCOPE_IDENTITY,但它们在本段中没有出现;即它们都不会用于从远程服务器检索标识值。