在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 时 , 必须把需要插入的列名列出来, 不然报错
正确例子:
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
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/12411047.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!
posted on 2020-03-04 18:02 jack_Meng 阅读(6428) 评论(0) 编辑 收藏 举报