在Sql Server 數據庫中對自增列的插入時,提示:當 IDENTITY_INSERT 設置為 OFF 時,不能為表 't_xxx' 中的標識列插入顯式值。


 

解決方法如下:

sql server 批量插入記錄時,對有標識列的字段要設置 set IDENTITY_INSERT 表名 on,然后再執行插入記錄操作;插入完畢后恢復為 off 設置

格式:
  set IDENTITY_INSERT 表名 on
  插入數據的語句....
  set IDENTITY_INSERT 表名 off

 

舉例:

set IDENTITY_INSERT peoplePworkpositiontype  on
insert peoplePworkpositiontype(id,workpositiontype,workpositiontypeid) values(1 , '平台' , 1 ) 
insert peoplePworkpositiontype(id,workpositiontype,workpositiontypeid) values(2 , '陸地' , 2 ) 
insert peoplePworkpositiontype(id,workpositiontype,workpositiontypeid) values(3 , '海上' , 3 )

go
set IDENTITY_INSERT peoplePworkpositiontype  off


set IDENTITY_INSERT peoplePstatetype  on
insert peoplePstatetype(id,nowstatetype,nowstatetypeid) values(1 , '出海' , 1 ) 
insert peoplePstatetype(id,nowstatetype,nowstatetypeid) values(2 , '出差' , 2 ) 
insert peoplePstatetype(id,nowstatetype,nowstatetypeid) values(3 , '公司' , 3 ) 
insert peoplePstatetype(id,nowstatetype,nowstatetypeid) values(4 , '會議' , 4 ) 
go
set IDENTITY_INSERT peoplePstatetype  off
go

 

出處:https://www.cnblogs.com/accumulater/p/6148637.html

=====================================================================================================

把IDENTITY_INSERT 設置為 ON ,還是不能插入數據問題

而我的使用的時候比較奇怪,明明已經設置了,如下:

我是想把備份表中的數據還原到現有表中
set IDENTITY_INSERT dbo.t_scs on
insert into dbo.t_scs select * from dbo.t_scs_0304;
set IDENTITY_INSERT dbo.t_scs off

但還是提示錯誤如下:
僅當使用了列列表並且 IDENTITY_INSERT 為 ON 時,才能為表'dbo.t_scs'中的標識列指定顯式值。
 

解決方法:

當設置 IDENTITY_INSERT 為 ON 時 , 必須把需要插入的列名列出來, 不然報錯

正確例子:

SET IDENTITY_INSERT  (表名) ON
insert into table(id,name) value(1,名稱)

SET IDENTITY_INSERT (表名) OFF

 

我的改為如下可以正常執行:
set IDENTITY_INSERT dbo.t_scs on
insert into dbo.t_scs (id,scs_Name,scs_DateTime) select * from dbo.t_scs_0304;
set IDENTITY_INSERT dbo.t_scs off

 

出處:https://www.cnblogs.com/personal-blog/p/8472958.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM