当 IDENTITY_INSERT 设置为 OFF 时,无法在表“企业”中插入标识列的显式值

Posted

技术标签:

【中文标题】当 IDENTITY_INSERT 设置为 OFF 时,无法在表“企业”中插入标识列的显式值【英文标题】:Cannot insert explicit value for identity column in table 'Businesses' when IDENTITY_INSERT is set to OFF 【发布时间】:2017-05-23 20:02:43 【问题描述】:

我创建了一个空迁移并将此代码添加到其中:

公共覆盖无效Up()

        Sql("INSERT INTO Businesses (Id, Field) VALUES (1, 'Restaurant')");
        Sql("INSERT INTO Businesses (Id, Field) VALUES (2, 'FastFood')");
        Sql("INSERT INTO Businesses (Id, Field) VALUES (3, 'Breakfast')");
        Sql("INSERT INTO Businesses (Id, Field) VALUES (4, 'Bar')");

    

    public override void Down()
    

        Sql("DELETE FROM Businesses WHERE Id IN (1, 2, 3, 4)");

    

填充字段表。但是当我想更新数据库时,我得到了这个错误:

当 IDENTITY_INSERT 设置为 OFF 时,无法为表“企业”中的标识列插入显式值。

我做错了什么?

【问题讨论】:

将 IDENTITY_INSERT 设置为 ON 或不插入 ID... 【参考方案1】:

您的数据库已设置为插入并自动增加您的 Id 列。只需从 SQL 查询中省略该列即可。

INSERT INTO Businesses (Field) VALUES ('Restaurant')
INSERT INTO Businesses (Field) VALUES ('FastFood')
INSERT INTO Businesses (Field) VALUES ('Breakfast')
INSERT INTO Businesses (Field) VALUES ('Bar')

我稍后看到您打算删除插入的行。您可能希望使用 where 语句做一些更复杂的事情,因为 Id 字段不能保证为 1、2、3 和 4。

【讨论】:

以上是关于当 IDENTITY_INSERT 设置为 OFF 时,无法在表“企业”中插入标识列的显式值的主要内容,如果未能解决你的问题,请参考以下文章

当 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值

无法添加表行,因为“当 IDENTITY_INSERT 设置为 OFF 时,无法在表 'Users' 中插入标识列的显式值”错误

IDENTITY_INSERT 设置为 OFF 的问题? :-/

当 IDENTITY_INSERT 设置为 OFF 时,无法在表“企业”中插入标识列的显式值

SqlException:当 IDENTITY_INSERT 设置为 OFF 时,无法在表“任务”中插入标识列的显式值

当 IDENTITY_INSERT 设置为 OFF 时,无法在表中插入标识列的显式值