在链接服务器中获取插入行的标识的最佳方法是什么?

Ray*_*phy 12 sql-server sql-server-2000 linked-server

我使用链接服务器在远程Sql Server中插入记录,现在我想获取插入记录的ID.类似于scope_identity()本地服务器的东西.我的远程sql server是2000版.

我看过这篇文章,但我无法在远程sql server中添加任何存储过程

And*_*y M 12

您可以使用远程端sp_executesql:

DECLARE @ScopeIdentity (ID int);
INSERT INTO @ScopeIdentity
EXEC server.master..sp_executesql N'
  INSERT INTO database.schema.table (columns) VALUES (values);
  SELECT SCOPE_IDENTITY()';
SELECT * FROM @ScopeIdentity;
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用OPENQUERY:

SELECT *
FROM OPENQUERY(server, '
  INSERT INTO database.schema.table (columns) VALUES (values);
  SELECT SCOPE_IDENTITY() AS ID');
Run Code Online (Sandbox Code Playgroud)