在两个单独的DB中的子句和选择的位置到单独的服务器上

时间:2015-06-15 11:00:01

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

只是说明,目前正在使用链接服务器连接是不可能的,因为我无权在其中一台服务器上更改任何内容。考虑到这一点,是否可以执行以下操作:

SELECT * FROM TableA
WHERE ID IN(SELECT ID FROM TableB)

表B在我的服务器上,表A在另一台服务器上。我正在考虑使用带有条件分割的OLE DB源,其中

  

SELECT * FROM TableA

将来自服务器上的其他数据库,我无权更改和

  

WHERE ID IN(从表B中选择ID)

以条件分割的形式。我该如何处理?

1 个答案:

答案 0 :(得分:0)

你的问题并不完全清楚,但我认为你想要使用SSIS来提取id在另一个数据库的表中的数据。

为此,我会为每个项添加一个源,然后按主/外键对项进行排序(您可以在源查询中执行此操作并设置"已排序"属性要执行这更有效,但它有点棘手)。然后,您可以使用合并连接组件使用内部联接将两个表连接在一起,这样您只能获得两个表中的ID enter image description here

编辑:

要调整此项以获得最佳性能,请更改密钥查找源以获得以下查询:

SELECT DISTINCT ID FROM TableB order by ID

设置"已排序"此源上的属性并删除后面的排序块。 (您可以添加订单并从其他来源中删除排序 - 如果已在ID上分类来源,则仅删除排序块)

合并排序要求双方按相同的键排序。