Sp使用链接服务器sql server同步两个表

时间:2015-03-02 17:28:38

标签: sql-server stored-procedures linked-server

我在一个SP工作,我在不同的服务器上有两个表,一个是主要的,另一个是副本但是更少的列,我想要的是每隔5分钟在主表上运行SP命令验证是否已创建新记录,如果是,则将这些新记录插入到位于其他服务器中的复制表中。

搜索解决方案我发现这个脚本在同一台服务器上运行正常,但是当我尝试使用链接服务器运行它时它失败了......请有人帮我解决这个问题。

这是get ....

的错误
  

返回链接服务器“ESDBCGW001T”的OLE DB提供程序“SQLNCLI”   消息“合作伙伴事务管理器已禁用其支持   远程/网络事务。“。消息7391,级别16,状态2,过程   sp_newrecords,第37行无法执行操作,因为   链接服务器“LINKEDSERVER”的OLE DB提供程序“SQLNCLI”无法使用   开始分布式交易。

所有配置都很完美,当我运行插入而没有变量运行正常时,我的意思是,而不是@val1@val2@val3我使用实数值{{1} },1'A'

'B'

2 个答案:

答案 0 :(得分:0)

您的数据库管理员需要在目标服务器上允许该权限。就个人而言,我只是将表从一个服务器复制到另一个服务器,然后存储过程将针对复制的数据运行。

如果您绝对需要跨服务器,请参阅this SO问题。

答案 1 :(得分:0)

为什么不直接使用复制这样的东西?

可能需要为您的特定问题https://technet.microsoft.com/en-us/library/cc759136%28v=ws.10%29.aspx

启用分布式事务处理协调器(DTC)

除了确保启用DTC之外,您应该使用begin distributed tran而不是begin tran

见:

https://msdn.microsoft.com/en-us/library/ms188386.aspx