【发布时间】:2016-12-12 16:13:42
【问题描述】:
通过 Visual Studio 2015 使用 SQL Server 2014 和 SSIS。
Source 和 Destination 都是位于同一服务器上的 SQL Server db。目标表有 2 列在表中计算。
这些列的值不是通过 SSIS 的派生列功能确定的。这些列的值由目标表上的目标数据库计算。
在目标映射编辑器上,这两列的输入列设置为<ignore>.
当我运行包时,我收到一个错误,因为包试图将空值插入到计算列中。
我尝试在选中和未选中检查约束的情况下运行它。我不想取消选中 Keep Nulls 框,因为大部分源数据都是合法的 null。
关于如何加载包含计算列的表有什么建议吗?
谢谢!
【问题讨论】:
-
我怀疑您正在尝试插入导致计算为空的值,您可能需要为计算列提取逻辑,然后将其应用于源数据,并查看哪些行结束加上返回 null 的表达式。
-
@GarethD 这是有道理的,但它似乎不是问题的原因。我正在使用一个通过 SSMS 工作的 select 语句,而不会在目标上造成任何错误。
-
@Tod Meinke 您是否尝试将目标映射中的列设置为
? (至少那是我在 SSIS 2008 中所做的)。 -
@rafaelbattesti 是的,它们被设置为忽略。我刚刚意识到我原来的帖子忽略了ingore 标签。我刚刚修好了...
-
如果您没有映射到这些列的任何内容,那么一定是其中定义的公式导致了错误。我从来没有遇到过在 SSIS 中插入带有计算列的表的问题(我记得不是这样)。您能否发布实际错误,因为它可能会进一步澄清问题。你也可以在列中发布他的计算
标签: sql-server ssis calculated-columns database-administration