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

发布于 2020-05-06  4.18k 次阅读


其实这已经是第几次遇到这个问题了,但是之前一直没有记录。

具体情况就是不小心误删了表数据,并且这个表格的数据主键还是自增长的,最主要的是这个自增长的主键是被别的表引用的。这时候我如果重新插入数据

  1. id因为自增长和之前的不一样了,就导致数据出问题
  2. 如果直接从备份中查询数据含ID进行插入,就会报错

报错就是如下图:

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

然后处理办法就像错误提示的那样,设置值为ON

set identity_insert oCompany ON
insert into oCompany(ID) values(1)
set identity_insert oCompany OFF

需要注意的有两点

  1. 记得操作完成后重新OFF
  2. 设置为ON之后进行的插入操作,表是需要明确写出列名

生命旅客,闷头赶路总不太可取,留一刻给那可爱可敬的人,留一眼给那靓丽迷人之景,也请善待自己~