使用不同的服务器/数据库执行SQL任务

时间:2013-02-13 19:44:42

标签: sql-server sql-server-2008 sql-server-2005 ssis

我可以让我的执行SQL任务查看2个不同的连接管理器。 对于实例:我需要来自ServerA / DatabaseA的数据查询ServerB / DatabaseB。 所以现在我需要编写一个查询并从两个服务器检索数据。 现在2台服务器不是链接服务器,不一定。

请允许我知道这是否可能。

2 个答案:

答案 0 :(得分:1)

我之前必须找到解决缺少链接服务器问题的方法,并且我做了类似的事情 - 尝试一下:

if object_id('tempdb..#mytemptable') is not null begin drop table #mytemptable end
select * into #mytemptable
from openrowset('SQLNCLI10','Server=TheOtherServersName;Trusted_Connection=yes;','SELECT * FROM FullyQualifiedName.dbo.MyTable')
/* Now use the temptable created on this server to do your join/subquery on whatever */
select * from MyOtherTable a
join #mytemptable b on a.id = b.id

干杯!

答案 1 :(得分:1)

Server AServer B添加具有单独数据流源任务的数据流任务。然后使用适当的数据流转换任务连接结果。

例如,此数据流采用Flat File SourceOLEDB Source任务,对结果进行排序,然后使用Merge Join任务获取结果。听起来你的实现需要两个OLEDB Sources或(ODBC,ADO NET等)。

我喜欢链接服务器或OPENROWSET上的此方法,因为您不必在SQL Server数据源上配置链接服务器或启用Adhoc Distributed Queries

SSIS Data Flow