我在一个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'
答案 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
见: