我需要将在 SQL Server 2000 中创建的所有 DTS 包迁移到 SSIS 2012。SQL Server 2000 和 SQL Server 2012 之间有什么区别。SQL 语句如插入、更新、删除等有什么不同。我有什么应该注意将 DTS 包升级到 SSIS 吗?
问问题
16776 次
1 回答
10
您不能将包直接从SQL Server 2000中编写的DTS迁移到SQL Server 2012中的SSIS。您可以进行从 DTS 到 SSIS 2005 或 2008 的中间转换,然后将它们升级到 SSIS 2012 包,但我不建议这样做,因为转换向导并不出色,而且您还将失去 SSIS 优于 DTS 的大部分好处。
因此,我强烈建议在 SSIS 2012 中重新编写包,复制原始 DTS 包的功能。我很欣赏,根据所涉及的软件包数量,这可能是一项大而耗时的任务,但这是最好的方法。
就差异而言,我在下面列出了一些值得注意的差异:
- DTS 是基于 COM 的,尽管 SSIS 在幕后仍然使用许多 COM 对象,但它是封装在 .NET 中的
- SSIS 具有序列容器,因此可以将对象组合在一起
- SSIS 2008 和 2012 支持 C# 以及 VB.NET
- DTS 只允许映射列名,但 SSIS 有丰富的数据转换集
- 必须丢弃 DTS 包中的 ActiveX 脚本(如果有)
- 在 SSIS 中,您需要手动映射 Unicode 和 ASCII
- SSIS 支持 64 位
SQL Server 2000 和 SQL Server 2012 在基本 DML 方面没有区别,例如INSERT
、UPDATE
和DELETE
,但 SQL 2008 及更高版本也有一个MERGE
允许 UPSERT 的语句。这在 SSIS 中本机不支持,但有第三方UPSERT
组件,包括 CodePlex.com 上的免费组件
然而,在 SSIS 数据流转换中,有一些组件,例如Slowly Changing Dimension (SCD)
组件和OLEDB Command
允许您更新行的组件。但是,这两种转换都表现不佳,通常有更好的方法。
于 2012-11-07T17:16:40.977 回答