我在SQL Server 2008上使用SSIS . 我有一个带有查找组件的数据流,其中没有为"Fail component"指定的无匹配条目选项 . 我正在查看先前执行包的日志,我可以从数据流中看到以下错误消息:
Row yielded no match during lookup.
以后的错误消息表明这是来自我的查找组件 . 然而,之后我可以看到一条信息消息(来自相同的数据流和相同的执行),表示目标组件写了几千行:
"component "OLE_DST ..." (578)" wrote 9924 rows.
在另一个环境上执行导致相同的“行在查找期间没有匹配”错误,但随后将零行写入目标 .
SSIS包在两种环境中都完全相同 . 数据略有不同,但具有相同的特征 - 源行,少数没有匹配的查找条目 .
这种行为是允许的吗?数据流是否可以在查找失败之前开始写入任意数量的行,然后停止写入行?
1 回答
汤姆,
是的,这种行为似乎是合情合理的 . 但是我认为(最好检查一下)它可能会受到FastLoadMaxInsertCommitSize的影响,因为该属性确定在提交之前插入了多少行 .
阅读更多:Default value for OLE DB Destination FastLoadMaxInsertCommitSize in SQL Server 2008
干杯
JT