我在 SQL Server 2012 上创建了一个链接服务器。通过它,我们可以成功执行插入和选择操作,但是当需要在本地服务器表上添加触发器以在链接服务器表上插入数据时。
我收到错误:
No Transaction is active
我们已启用防火墙入站/出站的 DTC 组件,并且 DTC 服务也已启用。我在网上搜索了很多。几乎尝试了一切。有什么事情我们可以尝试并把它做好吗?请?
这是我们在启用触发器的本地表上执行插入时遇到的错误的屏幕截图:
最佳答案
如果您不需要远程更新查询上的事务,您可以使用 OpenQuery 来完成。您必须使用 nvarchar(max) 中的参数构造查询,然后执行 sp_executesql。像这样的东西:
declare @Query nvarchar(MAX);
SET @Query = 'select * from openquery(REMOTE_SERVER,''insert table ..' + @field + '..'')';
EXEC sp_executesql @Query;
注意 nvarchar 中的双引号。
关于sql-server - 如何让一个数据库中的触发器通过链接服务器连接将数据插入到另一个数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45895568/