首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用OLEDB源中的数据在SSIS中运行SQL merge语句

问如何使用OLEDB源中的数据在SSIS中运行SQL merge语句
EN

Stack Overflow用户
提问于 2014-01-14 20:56:17
回答 1查看 402关注 0票数 0

我有两个不同的系统使用的两个数据库,它们需要共享一组数据(数据流是单向的,从一个系统到另一个系统)。接收数据的系统使用SSIS包导入数据。两个数据库中包含共享数据的表的表结构和列名是相同的。

使用SSIS,我希望能够从第一个系统中的表中获取数据的子集。例如

代码语言:javascript
复制
SELECT ProductId, col2, col3, col4 from Products WHERE modifiedDate > @ThresholdDate

然后,我想从这个查询中获取数据,并使用SQL merge语句根据ProductId是否匹配来添加或更新另一个数据库中的数据。

我以前在执行SQL任务中编写过merge语句,但这是可能的,因为两个数据库都在同一台服务器上。我不希望必须使用sp_addlinkedserver,我只希望有一个OLE DB Source来获取数据,并将这些数据传递给某个SSIS组件,然后我可以使用该组件来运行merge语句。

这是可能的吗?或者在运行merge语句之前,我是否需要首先将数据存储在临时表中?

EN

回答 1

Stack Overflow用户

发布于 2014-01-14 22:39:48

您可以使用Foreach循环容器来实现这一点,将原始查询结果放入对象变量中。然后将输出转换为单独的变量,并一次一行地运行合并查询。

但是,我想您最好的方法是创建一个临时表,正如您所提到的。将数据传输到临时表,然后从中运行合并。毫无疑问,它将会更快。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21114135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档