2015-04-28 83 views
0

我想作如下声明:Transfering数据从生产服务器的发展服务器

INSERT INTO [Server_1\Instance_1].[Database].[dse].Table1 
SELECT * FROM [Server_2\Instance_2].[Database].[dse].[**Table1**] 

点是表是不同的服务器上。我尝试了上面的陈述。然而,当我在服务器1,当我以从服务器2获取数​​据运行下面的语句:

SELECT * FROM [Server_2\Instance_2].[Database].[dse].[**Table1**] 

...我得到零行。 但是当我在Server_2上运行上面的语句时,我得到一组行。

如何将数据从生产转移到开发服务器/环境? 我正在使用MS Management Studio。

UPDATE: 当我以从另一个(生产)服务器获取数据运行SELECT语句,我得到的错误信息:

OLE DB提供程序“SQLNCLI10”链接服务器“Prod_Server \ Instance”不包含表“”数据库“。”dse“。”BoxIteration“”。该表或者不存在,或者当前用户对该表没有权限。

Select语句是:

SELECT * FROM [Prod_Server\Instance].[Database].[dse].[BoxIteration] 
+1

在第一个插入语句中,您在4个部分对象名中都有相同的服务器名称。这是一个错字吗? – GarethD

+0

可能是服务器都链接服务器然后上面的查询将工作 – mohan111

+0

@GarethD:这是一个错字。我会纠正它。本质上,问题在于将数据从一台服务器传输到另一台服务器,以便用生产数据测试解决方案。 – Adam

回答

1

有两点需要考虑:

  • 在目标服务器添加源服务器作为链接服务器
  • 验证指定的凭据同时创建链接的服务器可以访问源服务器中的数据

我有一个本地化版本的SQL Server,因此转换可能与您在屏幕上看到的不匹配:在SSMS中打开对象资源管理器窗口,连接到目标服务器,打开树并查找服务器对象,链接服务器。右键单击源链接服务器,然后查看属性。打开安全窗格,查看哪些凭证用于连接到链接服务器。

一旦您这样做了,您必须检查源服务器上该凭据的权限,以验证它是否可以访问有问题的表。

如果您不明白或无法执行某些步骤(缺少权限),请从您的DBA获得帮助:他会立即理解并解决问题。

+0

你能举一个例子说明如何实际做到这一点吗?顺便说一句,我是开发人员,并已读取生产服务器上的权限,并在dev服务器上读取+写入权限。 – Adam

+0

我已经更新了答案,请看看它。 – JotaBe

0

如果妳有机会(有证书)同时督促和开发数据库服务器可以使用“导入和导出数据” 1.Go启动并打开“导入和导出数据” enter image description here

  • 向导将打开给源服务器名称,证书和数据库(对于你的情况PROD)
  • 然后给目标服务器名称,证书和数据库(开发)
  • 选择表,如果有任何标识列 - >“编辑映射”和启用身份插入。
  • 然后给下一个 - >它会开始复制。
  • 相关问题