报错:Cannot insert explicit value for identity column in table 't' when identity_insert is set to OFF

时间:2022-03-13 21:43:12

通常情况下,不能向 SQL Server 自增字段插入值,如果非要这么干的话,SQL Server 就会好不客气地给你个错误警告:

  1. Server: Msg 544, Level 16, State 1, Line 1
  2. Cannot insert explicit value for identity column in table 't' when identity_insert is set to OFF.

这个错误消息提示我们,如果向 SQL Server 自增字段插入值,需要设置 identity_insert 选项为 on。

  1. set identity_insert on

看具体的一个例子:

  1. create table dbo.t
  2. (
  3. id int identity(1,1) not null,
  4. name varchar(50)
  5. )
  6. set identity_insert t on
  7. insert into t (id, name) values(1, 'sqlstudy')
  8. set identity_insert t off

注意的是,自增字段插入值后,要及时把 identity_insert 设置为 off。

或者写插入语句时不要把自增的ID加入进去。