我在两个虚拟机Test
服务器和Production
服务器上有两个 SQL Server 实例。
我需要对UPDATE
生产服务器从测试服务器获取数据值进行操作。
例如 :
UPDATE [server_production].dbname.mytable
SET column1 = [server_test].dbname.mytable.column1
我该怎么做呢 ?
我在两个虚拟机Test
服务器和Production
服务器上有两个 SQL Server 实例。
我需要对UPDATE
生产服务器从测试服务器获取数据值进行操作。
例如 :
UPDATE [server_production].dbname.mytable
SET column1 = [server_test].dbname.mytable.column1
我该怎么做呢 ?
看看redgate sql数据比较
http://www.red-gate.com/products/sql-development/sql-data-compare/
在您的生产服务器上,定义一个指向您的测试服务器的链接服务器。
然后,在您的生产服务器上,您可以运行类似于以下内容的查询来更新您的列:
UPDATE p
SET column1 = t.column1
from <dbname>.<schema>.mytable p
join <TestLinkedServerName>.<dbname>.<schema>.mytable t
on p.<id> = t.<id>
在上面的查询中,您需要为占位符提供值:
<dbname>
- 产品/测试数据库的名称<schema>
- 定义表的模式(通常是dbo)<TestLinkedServerName>
- 您为链接服务器指定的名称<id>
- 您的 PK 列,或唯一标识行并提供连接两个表的方法的列