【发布时间】:2012-11-07 16:42:04
【问题描述】:
我需要将在 SQL Server 2000 中创建的所有 DTS 包迁移到 SSIS 2012。SQL Server 2000 和 SQL Server 2012 有什么区别。SQL 语句如插入、更新、删除等有什么区别。什么是将 DTS 包升级到 SSIS 应该注意什么?
【问题讨论】:
我需要将在 SQL Server 2000 中创建的所有 DTS 包迁移到 SSIS 2012。SQL Server 2000 和 SQL Server 2012 有什么区别。SQL 语句如插入、更新、删除等有什么区别。什么是将 DTS 包升级到 SSIS 应该注意什么?
【问题讨论】:
您不能将包直接从 SQL Server 2000 中编写的 DTS 迁移到 SQL Server 2012 中的 SSIS。您可以进行从 DTS 到 SSIS 2005 或 2008 的中间转换,然后将它们升级到 SSIS 2012 包,但我不建议这样做,因为转换向导并不出色,而且您也会失去 SSIS 优于 DTS 的大部分好处。
因此,我强烈建议在 SSIS 2012 中重新编写包,复制原始 DTS 包的功能。我很感激,根据所涉及的软件包数量,这可能是一项大而耗时的任务,但这是最好的方法。
在差异方面,我在下面列出了几个值得注意的:
SQL Server 2000 和 SQL Server 2012 在基本 DML 方面没有区别,例如 INSERT、UPDATE 和 DELETE,但 SQL 2008 及更高版本还有一个允许 UPSERT 的 MERGE 语句。 SSIS 本身不支持此功能,但有第三方 UPSERT 组件,包括 CodePlex.com 上的免费组件
但是,在 SSIS 数据流转换中,有一些组件,例如 Slowly Changing Dimension (SCD) 组件和 OLEDB Command 组件,它们允许您更新行。但是,这两种转换都表现不佳,通常有更好的方法。
【讨论】: