1

我在两个虚拟机Test服务器和Production服务器上有两个 SQL Server 实例。

我需要对UPDATE生产服务器从测试服务器获取数据值进行操作。

例如 :

UPDATE [server_production].dbname.mytable 
SET column1 = [server_test].dbname.mytable.column1

我该怎么做呢 ?

4

2 回答 2

1

看看redgate sql数据比较

http://www.red-gate.com/products/sql-development/sql-data-compare/

于 2012-12-01T09:55:42.750 回答
1

在您的生产服务器上,定义一个指向您的测试服务器的链接服务器。

然后,在您的生产服务器上,您可以运行类似于以下内容的查询来更新您的列:

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 列,或唯一标识行并提供连接两个表的方法的列
于 2012-12-01T09:55:58.350 回答