【问题标题】:SSIS - Insert new rows, update rowsSSIS - 插入新行,更新行
【发布时间】:2011-09-10 02:52:49
【问题描述】:

检查哪些行已更改以及哪些行已存在的“最佳”或推荐方法是什么? 我找到了几篇文章,但我不确定这些方法是否最好:

http://www.ssistalk.com/2007/03/09/ssis-using-a-checksum-to-determine-if-a-row-has-changed/
http://itssmee.wordpress.com/2010/10/03/ssis-insert-and-update-rows-in-a-table-based-on-the-contents-of-a-excel-file/
http://consultingblogs.emc.com/jamiethomson/archive/2006/09/12/SSIS_3A00_-Checking-if-a-row-exists-and-if-it-does_2C00_-has-it-changed.aspx

我需要它来处理来自 25 个数据库的大量数据

编辑:

在这篇文章中... http://consultingblogs.emc.com/jamiethomson/archive/2006/09/12/SSIS_3A00_-Checking-if-a-row-exists-and-if-it-does_2C00_-has-it-changed.aspx ...如何添加更新记录的部分?我是使用 OLE DB 命令还是在本文中没有看到其他内容?

【问题讨论】:

    标签: sql-server ssis insert


    【解决方案1】:

    这些链接是最好的。 Phil 和 Jamie 对这个主题非常了解。您唯一的其他真正选择是加载整个表并使用 T-SQL 的 MERGE 命令找出差异。

    Jamie Thomson 的帖子有三个以 Union Alls 结尾的输出,这些输出在您的最终数据库上并没有真正“起作用”。需要明确的是,您可以丢弃其中一个输出 - 因为它是“无变化”输出(标记为“年龄保持不变”的输出)。标有“新客户”的那个是您可能会路由到 OLE DB 目标的那个。标记为“Age has changed”的那个是您要路由到 OLE DB 命令转换的那个。

    现在,OLE DB 命令转换的工作速度没有那么快。有一些方法可以解决这个缓慢的问题,但快速搜索应该可以为您解决这个问题。

    【讨论】:

    • 感谢您的回答。我编辑了我的问题,请问您是否可以帮助解决这个问题?
    • 修改了答案,以澄清在 Jamie 的示例中放置什么而不是“黑洞”联合所有组件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-28
    • 2018-10-11
    • 1970-01-01
    相关资源
    最近更新 更多