更改 SQL 列的数据类型时更新 SSIS 包

Posted

技术标签:

【中文标题】更改 SQL 列的数据类型时更新 SSIS 包【英文标题】:Updating SSIS Package when datatype for SQL column is changed 【发布时间】:2018-12-28 17:57:02 【问题描述】:

我们必须更新 SQL 表中列的数据类型,该列在 SSIS 包中用作源。但是当我在更新数据类型后运行 SSIS 包时,由于数据类型不匹配而失败。

如何让 SSIS 包重新编译/重新验证源代码,使其不会失败?

【问题讨论】:

我假设您已经更新了源列,但没有更新数据流中的其余部分。您需要在数据流中更新列的数据类型的所有 外观。 如果无法隐式转换目标列类型(可能以前是int,现在是date),那么您还需要添加数据转换转换或派生列转型。 social.msdn.microsoft.com/Forums/sqlserver/en-US/… 【参考方案1】:

您需要打开 SSIS 包本身。从此时开始,转到使用此对象的任何组件,右键单击它并选择 Show Advanced Editor...,然后按 Connection Manager 窗格上的 Refresh 按钮以更新元数据。我还建议仔细检查任何列映射以验证数据类型和长度是否兼容。

【讨论】:

【参考方案2】:

您可以打开现有包并运行数据转换,或者只需创建一个新包并用转换覆盖现有包。

【讨论】:

以上是关于更改 SQL 列的数据类型时更新 SSIS 包的主要内容,如果未能解决你的问题,请参考以下文章

SSIS和NULL值

更改 SQL Server DB 中列的数据类型时出错 - Java

什么是 SSIS 包部署和更改跟踪最佳实践?

实际改变的 SSIS 变量

从SQL Server代理作业步骤调用时,SSIS包不会运行

SSIS 合并声明日期时间未更新