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