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