当IDENTITY_INSERT设置为OFF时,无法在表'表'中为身份列插入明确的值

当我执行以下脚本时,出现了以下错误。这个错误是怎么回事,如何解决?

Insert table(OperationID,OpDescription,FilterID)
values (20,'Hierachy Update',1)

错误。

服务器。Msg 544, Level 16, State 1, Line 1

当IDENTITY_INSERT设置为OFF时,无法在表'table'中为身份列插入显式值。

你插入的是 "OperationId "的值,这是一个**身份列。

你可以像这样打开表的身份插入,这样你就可以指定你自己的身份值。

SET IDENTITY_INSERT Table1 ON

INSERT INTO Table1
/*Note the column list is REQUIRED here, not optional*/
            (OperationID,
             OpDescription,
             FilterID)
VALUES      (20,
             'Hierachy Update',
             1)

SET IDENTITY_INSERT Table1 OFF 
评论(6)

不要给OperationID加值,因为它将自动生成。

Insert table(OpDescription,FilterID) values ('Hierachy Update',1)
评论(1)

对将IDENTITY_INSERT设置为ON要非常警惕。这是一个糟糕的做法,除非数据库处于维护模式并被设置为单用户。这不仅会影响你的插入,而且会影响其他试图访问该表的人的插入。

你为什么要把一个值放入一个身份字段?

评论(5)