一千萬個為什麽

搜索

SQL Server 2005中的分布式事務

作為事務的一部分,我通過服務器鏈接修改表中的行,因此必須在我的sproc中指定“SET XACT_ABORT ON”,否則它將不會執行。現在我註意到SCOPE_IDENTITY()返回NULL,這可能與分布式事務範圍有關?

有誰知道為什麽以及如何解決?

最佳答案

@@ IDENTITY

@@ IDENTITY函數的範圍   是本地服務器上的當前會話   執行它。這個功能   無法應用於遠程或鏈接   服務器。獲取身份值   在另一臺服務器上,執行一個   存儲過程在該遙控器或   鏈接服務器並存儲   程序(正在執行   遠程或鏈接的上下文   服務器)收集身份值和   將它返回到調用連接   本地服務器。

請註意,盡管它在周圍段落中討論了IDENT_CURRENT和SCOPE_IDENTITY,但它們在本段中沒有出現;即,它們都不能從遠程服務器檢索身份值。

轉載註明原文: SQL Server 2005中的分布式事務