SQL Server 2012:使用链接服务器将数据从一个数据库服务器复制到另一个数据库服务器

时间:2016-03-08 07:04:22

标签: sql-server sql-server-2008 sql-server-2012 sql-server-2008-r2

我正在尝试将数据从一个服务器复制到另一个服务器。我的源服务器中已经有一个链接服务器。当我尝试执行以下查询时,我收到一个错误。

SELECT Appt.C1 AS AppointmentId
    ,Appt.C2
INTO [190.28.111.187].[WH_AC].[dbo].[ApptDet]
FROM [whse].[Vw_ApptDet] Appt
INNER JOIN #DealerList DL ON DL.DealerId = Appt.DealerId

错误:

Msg 117, Level 15, State 1, Line 4
The object name '190.28.111.187.WH_AC.dbo.ApptDet' contains more than the maximum number of prefixes. The maximum is 2.

我不确定我失踪的地方。请建议我如何执行此操作。

4 个答案:

答案 0 :(得分:0)

  

您可以使用此类代码样式[190.28.111.187]。[WH_AC]。[dbo]。[ApptDet]来检索数据。在操作活动的情况下,SQL不支持。我建议使用openrowset来实现这个概念。

OPENROWSET('SQLNCLI', 'Server=YourServername;Trusted_Connection=yes;',
  

识别服务器名称运行代码

Select @@servername.

答案 1 :(得分:0)

来自INTO clause的文档:

  

您无法在远程服务器上创建new_table;但是,您可以从远程数据源填充new_table。 [...]

所以你必须撤销你的陈述(即从远程服务器执行它),或者用另一种方式。

答案 2 :(得分:0)

我会为此目的使用Integration Services(SSIS)。

答案 3 :(得分:0)

如果你需要这样做(我接下来会做,那么好的问题)。

首先创建表(在远程服务器上)

CREATE TABLE  dbo.[TEST](
    [id] [int] NOT NULL,
    [description] [varchar](50) NULL,
    )

然后

insert into [server].[db].dbo.[TEST]
select * from [TEST]

我需要将数据移动到链接服务器上,我下周没有权利,所以你让我担心。我当然可以在遥控器上创建一个表而不是链接服务器。