检查约束问题

时间:2015-06-18 09:18:54

标签: sql sql-server-2008 ssis

需要一些建议。我有一个序列容器,当我尝试执行它时失败。我发现源表和目标表的某些列之间的约束存在差异。 然后,我试图取消选中" Check Constraints"在目的地的选项,它是成功的。

我试图通过再次检查"检查约束"来复制错误。选项,并尝试运行容器,现在它仍然成功运行。我以前再也无法复制失败的工作了。请告知可能导致此问题的原因。

我明白这个"检查约束" setting指定数据流管道引擎将根据目标表的约束验证传入数据。

1 个答案:

答案 0 :(得分:0)

如果不知道表格的约束,插入的数据以及顺序,这是一个难以回答的问题。我的猜测是,这样的事情发生了:

表A具有表B的外键引用。首先,两个表都有0条记录。

启用“检查约束”选项后,您尝试将记录加载到表A中。由于引用了表B,此操作失败,此时表B尚未包含任何记录。

然后取消选中“Check Constraints”,现在可以将记录加载到两个表中而不会出错。

然后重新检查“检查约束”。现在,表A和表B都包含数据,这意味着您可以再次将数据插入表A,而不会违反约束。