我有两个链接的服务器,服务器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。这是否意味着我需要创建一个存储过程?
非常感谢任何人都可以提供一些建议。
引用远程表时,需要使用四部分表名:
[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查询。