代码之家  ›  专栏  ›  技术社区  ›  Eldila

使用SQL Server从跨服务器插入中获取最后一个ID

  •  3
  • Eldila  · 技术社区  · 15 年前

    我正在运行跨服务器插入

    INSERT INTO server.database.dbo.table (Field) VALUES('test')
    

    之后,我需要得到最后一个插入的ID。但是,当我运行scope_identity函数时,我没有从外部服务器获取最新的ID。

    SELECT @ID=SCOPE_IDENTITY()
    

    如何从跨服务器插入中检索最后一个ID?

    2 回复  |  直到 15 年前
        1
  •  4
  •   ahains    15 年前

    http://msdn.microsoft.com/en-us/library/ms187342.aspx

    @@标识函数的作用域 是本地服务器上的当前会话 在其上执行。这个函数 无法应用于远程或链接 服务器。获取标识值 在其他服务器上,执行 该远程或 链接服务器并将其存储 程序(在 远程或链接的上下文 服务器)收集标识值并 将其返回到上的呼叫连接 本地服务器。

        2
  •  1
  •   GuyIncognito    15 年前

    我很确定您必须将插入包装到远程链接服务器上的存储过程中,并让存储过程返回标识列值。

    参考文献: http://msdn.microsoft.com/en-us/library/ms187342.aspx