【问题标题】:Foreign key column allows 0 in SQL Server from bulk insert外键列允许批量插入 SQL Server 中的 0
【发布时间】:2018-03-28 05:26:40
【问题描述】:

我有一列检查列上的 FK 约束并允许 NULL。但是,即使主表中没有 ID 为 0 的行,它也允许将 0 作为值。

此插入发生在 .NET 的批量插入上。但是,如果我在 SQL Server 中直接将值更改为有效数字并返回 0,则它不会允许。

所以不知何故,批量插入允许 0 被允许,有什么原因吗?

【问题讨论】:

    标签: sql .net sql-server foreign-keys sqlbulkcopy


    【解决方案1】:

    默认情况下,BULK INSERT 忽略检查和外键约束。您可以使用CHECK_CONSTRAINTS 打开它们。

    这在文档中有解释:

    CHECK_CONSTRAINTS

    指定目标表或视图上的所有约束都必须是 在批量导入操作期间检查。没有 CHECK_CONSTRAINTS 选项,任何 CHECK 和 FOREIGN KEY 约束都是 忽略,操作后对表的约束为 标记为不受信任。

    【讨论】:

    • 是的 SqlBulkCopyOptions.CheckConstraints 是我的设置
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多