我使用
sqlBulkCopy将一组行插入到表中.我忘了在行上设置整数值.缺少的列用于引用另一个表,这是通过外键约束强制执行的.
对于插入的每一行,最终整数值为零,零没有标识相关表中的一行.当我将值修改为有效值,然后尝试将其重新设置为零时,它不会接受它.
所以我的问题是sqlBulkCopy如何设法使数据库处于无效状态?
how does sqlBulkCopy manage to leave the database in an invalid state?
它禁用插入表的外键.
是的,这是一个可怕的默认.如果您能负担得起,请确保选择CHECK_CONSTRAINTS(或sqlBulkCopy的CheckConstraints).
它也默认不触发触发器,同样可怕的数据一致性.触发器是有原因的.