2009-09-28 40 views
4

如果为SqlBulkCopy插入设置了SqlBulkCopyOptions.CheckConstraints选项,它会在每个记录之后单独检查约束,还是在插入所有记录后检查约束?SqlBulkCopy检查约束在哪个阶段?

我有一个检查约束,比较某些列与父行(通过UDF)。我正在使用MS Sql Server 2005.在http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopyoptions.aspx上的文档只说“在数据插入时检查约束”。

在我的测试中,似乎直到结束时才检查外键,但在添加下一行之前,检查每行的检查约束。这听起来很奇怪。我还没有找到关于此的任何文档。

+0

UDF将为每一行运行,并暗恋性能! – 2009-09-28 15:46:37

+0

我会使用SQL事件探查器来确定答案。也许FK在开始时被禁用,并在最后被应用。 – 2009-11-20 19:12:09

回答

0

不确定,如果我完全理解这一点。

但是,那可能是因为交易到位。它可能检查外键约束,当它准备提交时,作为列约束可以独立检查(有点)。