Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 跨链接服务器的SQL更新_Sql Server_Tsql - Fatal编程技术网

Sql server 跨链接服务器的SQL更新

Sql server 跨链接服务器的SQL更新,sql-server,tsql,Sql Server,Tsql,我在主机服务器上设置了一个链接服务器:“MyLinkedServer” 我的服务器“HostServer”上有一个SP 我正在调用HostServer上的存储过程,该过程使用MyLinkedServer上DatabaseB中的表中的值更新MyLinkedServer上DatabaseA中的表 我有其他SP在同一场景中运行良好,但它们正在执行插入和删除操作,但是此SP无法更新数据库中的表(没有返回错误,只是没有更改的数据),如果我更改连接以实际在“MyLinkedServer”上运行SP,它将正常

我在主机服务器上设置了一个链接服务器:“MyLinkedServer” 我的服务器“HostServer”上有一个SP

我正在调用HostServer上的存储过程,该过程使用MyLinkedServer上DatabaseB中的表中的值更新MyLinkedServer上DatabaseA中的表

我有其他SP在同一场景中运行良好,但它们正在执行插入和删除操作,但是此SP无法更新数据库中的表(没有返回错误,只是没有更改的数据),如果我更改连接以实际在“MyLinkedServer”上运行SP,它将正常工作

UPDATE MyLinkedServer.DataBaseA.dbo.MyTable
SET Column1 = db2.Column1

FROM MyLinkedServer.DataBaseA.dbo.MyTable db1
INNER JOIN 
        (
            SELECT TOP 1 Column1 
            FROM MyLinkedServer.DataBaseB.dbo.MyTable db2
            WHERE db2.Id = 2
        ) AS db2 ON db2.Id = 2

WHERE db1.Id = 1

我相信您需要引用from语句中引用的别名。改变了吗

UPDATE MyLinkedServer.DataBaseA.dbo.MyTable
进入


解决您的问题?

我认为您需要引用from语句中引用的别名。改变了吗

UPDATE MyLinkedServer.DataBaseA.dbo.MyTable
进入


解决您的问题?

您可以发布一些示例代码吗?这也是SQL Server,如果是,是什么版本?您是否使用任何分布式事务?没有分布式事务,因为没有设置在链接服务器上处理它们,所以这些事务会失败。其他SP是否工作正常?是否更新数据?不只是选择?其他SP正在执行插入和删除操作,但不是更新。你能发布一些示例代码吗?这也是SQL Server,如果是,是什么版本?您是否使用任何分布式事务?没有分布式事务,因为没有设置在链接服务器上处理它们,所以这些事务失败。其他SP是否工作正常?是否更新数据?不只是选择?其他SP正在执行插入和删除,而不是更新。