2013-03-14 96 views
0

我有很多链接的服务器,包含类似的数据库,现在我被要求做一个存储过程,将数据库中的数据从一个服务器传输到另一个服务器的数据库。但我应该将目标服务器名称,源服务器名称,目标数据库名称,源数据库名称作为存储过程的参数。 我能够使用动态sql在同一服务器的不同数据库之间执行此操作。如何动态地将数据从一台服务器传输到另一台服务器。

SET @dynsql =N'INSERT INTO '[email protected]+N'..UIElement (UIElementID,UIElementName) 
    SELECT @LatestUIElementId,UIElementName 
    FROM '+QUOTENAME(@sourceDBname)+N'.dbo.UIElement WHERE UIElementID = @OldUIElementId' 
    EXEC sp_executesql @dynsql,N'@LatestUIElementId int',@LatestUIElementId [email protected] 

但无法找到可以在服务器之间使用的方式。

+1

所以,当你只需将链接服务器添加到您的动态生成的对象名称前面你上面的查询不起作用?如果不是,你会得到什么错误? – 2013-03-14 06:33:44

回答

0

在我看来,你在查询中缺少目标服务器。从我上面看到的只有目标数据库。

查询的目标服务器应该是这样的

select * from [Server].database.schema.table 
相关问题