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

通常情况下,不能向 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加入进去。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐