将数据从一台服务器复制到另一台服务器

时间:2020-06-04 06:28:41

标签: sql sql-server linked-server

我有两个链接的服务器,服务器A和服务器B。 我想将表1中的数据从服务器A复制到服务器B中的表2。 我知道我可以从表1中进行选择,并使用以下查询将其插入#TempTable中。

INSERT INTO #TempTable (x,y,z) 
SELECT x,y,z
FROM table 1

但是我不知道如何将数据从#TempTable复制到服务器B中的表2。我还需要每个星期一将数据从服务器A中的表1复制到服务器B中的表2。这是否意味着我需要创建一个存储过程?

如果有人能提供一些建议,我真的很感激。

1 个答案:

答案 0 :(得分:0)

在引用远程表时,您需要使用四部分表名:

[LinkedServerName]。[DatabaseName]。[SchemaName]。[TableName]

例如:

 INSERT INTO #TempTable(x, y, z) 
 SELECT x, y, z 
 FROM ServerA.db1.dbo.TableA

对于临时表,如果要引用远程服务器上的临时表,则由于范围的原因,它不适用于本地临时表。您必须使用全局临时表:

INSERT INTO dbo.TableB
SELECT x, y, z
FROM ServerB.tempdb.dbo.##TempTable

请注意名称前的两个哈希符号,它们代表全局临时表,而不是具有单个哈希的本地临时表。

要安排插入,请使用SQL代理作业。 Job可以调用存储过程或临时SQL查询。