当我执行下面的脚本时,我有以下错误。错误是关于什么,如何解决?
Insert table(OperationID,OpDescription,FilterID)
values (20,'Hierachy Update',1)
错误:
服务器:Msg 544,级别16,状态1,线路1 当IDENTITY_INSERT设置为OFF时,无法为表'table'中的标识列插入显式值。
当我执行下面的脚本时,我有以下错误。错误是关于什么,如何解决?
Insert table(OperationID,OpDescription,FilterID)
values (20,'Hierachy Update',1)
错误:
服务器:Msg 544,级别16,状态1,线路1 当IDENTITY_INSERT设置为OFF时,无法为表'table'中的标识列插入显式值。
当前回答
首先转到所需的表名
步骤2 ->右击表名
选择设计
单击列名
步骤5)进入列属性,然后将No设置为Identity Specification
[注意:插入到显式值后,如果你想,你可以恢复到标识规范为true,然后它会再次生成值]
如果你使用SQL server管理studio你可以使用下面的方法
步骤1) 步骤2)
其他回答
我不确定“插入表”的用途是什么,但如果你只是想插入一些值,请尝试:
Insert Into [tablename] (OpDescription,FilterID)
values ('Hierachy Update',1);
我有同样的错误消息出现,但我认为这应该工作。只要是主键,ID就应该自动递增。
只需删除拖放到.dbml文件中的表,然后重新拖动它们。清洁方案>重建方案>重建方案。
这对我很管用。
我没有做我自己的表格,我是用VS和SSMS,我遵循这个链接为ASP。净身份:https://learn.microsoft.com/en-us/aspnet/identity/overview/getting-started/adding-aspnet-identity-to-an-empty-or-existing-web-forms-project
在我的情况下,我插入了比表中定义的更多的字符。
在我的表列用nvarchar(3)定义,我传递了超过3个字符,同样的错误消息来了。
这不是答案,但在某些情况下可能是类似的问题
在您的查询中有前面提到的OperationId,它不应该在那里,因为它是自动递增的
Insert table(OperationID,OpDescription,FilterID)
values (20,'Hierachy Update',1)
所以你的问题是
Insert table(OpDescription,FilterID)
values ('Hierachy Update',1)
要非常小心地将IDENTITY_INSERT设置为ON。这是一种糟糕的实践,除非数据库处于维护模式并设置为单用户。这不仅会影响您的插入,还会影响试图访问表的其他人的插入。
为什么要在单位字段中输入一个值?