如何从链接服务器上的触发器获取输出

Jas*_*tka 5 trigger sql-server linked-server sql-server-2012

公平警告,我知道这不是最好的方法,但我正在尝试扩展一些现有代码而无需重写。

无论如何,我已经安装了两个 SQL Server 2012,一个在我的办公室本地,另一个在远程站点。远程站点的服务器为我的本地系统设置了链接服务器。

远程站点的应用程序将记录插入链接服务器上具有INSTEAD OF触发器的表中。该触发器的末尾有一个 select 语句,它返回一个整数值。如果我在 SSMS 的本地框上插入,我会得到整数作为输出。如果我在远程盒子上插入,我得到的只是1 row(s) affected.

无论如何我可以将触发器的输出传递回链接服务器还是我需要重写为存储过程?

以下文本基于评论中要求的澄清

所有连接都是在远程端的单个用户的安全上下文中进行的。如果我EXECUTE AS USER在本地服务器上使用插入而不是通过链接进行插入,则输出会按预期显示,因此这不是帐户的权限问题。

服务器选项是:

Collation Compatible=False  
Data Access=True  
RPC=True  
RPC Out=True  
Use Remote Collation=True  
Collation Name=(blank)  
Connection Timeout=0  
Query Timeout=0  
Distributor=False  
Publisher=False  
Subscriber=False  
Lazy Schema Validation=False  
Enable Promotion of Distributed Transaction=True
Run Code Online (Sandbox Code Playgroud)

Ken*_*her 1

您是否考虑过修改触发器以将该整数放入表中?包括一些标识信息,例如您要插入的表中的主键。然后只需在插入后查询表即可。