我正在使用数据流任务更新现有包。目前,此数据流任务有两个步骤:
我需要使用更复杂的查询来更新 OLE DB Source ,该查询可以连接来自2个不同数据库的数据。此查询已构建,并具有Group By子句,4或5 Where条件以及要引导的Order by子句。手动运行时,它就像一个魅力。问题是 OLE DB Source 只允许1个数据连接。
根据网络上的searches,我需要创建2个不同的数据源,然后将它们与Merge Join步骤合并。但是,这看起来像我需要通过一系列步骤有效地重建我的整个查询。我宁愿不这样做。
我有没有办法将我的Select查询(再次从2个DB中提取)复制并粘贴到包中,而不必完全重建它?
答案 0 :(得分:0)
如果您用于连接的登录具有正确的访问权限,则只要您完全限定表名,就应该能够使用服务器上的所有数据库。即
select a, b
from bd1.dbo.table1 join
db2.dbo.table2
on some_col = some_other_col
如果以某种方式无效(它应该,我有一些在ssis中运行的查询),您可以在1个数据库中创建一个视图,在两个数据库上保存查询。同样,连接帐户需要对所有使用的DB具有适当的权限。
如果你正在使用其他东西,那么你不能指定db / schema的select你可以使用
use db1
some action
use db2
some action
答案 1 :(得分:0)
如果您正在使用单个服务器并且您拥有数据库的权限,那么使用oledb源可以为多个数据库工作。这2个设置你需要考虑...... 1)您需要为所有对象提供完全限定的名称。 (db_name.Schema_name.object_name) 2)在连接oledb源时,只需提供服务器名称和服务器凭证,不要提供任何数据库名称。将数据库名称保留为oledb源的空白,然后它将适用于服务器上的所有数据库。