合 MSSQL数据库中对自增列的插入时,提示:当 IDENTITY_INSERT 设置为 OFF 时,不能为表 't_xxx' 中的标识列插入显式值
Tags: 故障处理MSSQLSQL Server自增列
原因
出错原因是:
1.自增长的SQL表里面插入指定ID的数据的时候,会禁止你操作;
2.插入数据时,自增长列是系统自动处理,不需要指定数值,也指定不了。只有将IDENTITY_INSERT 为 ON 时插入数据时,自增长列才可以指定一个值。
情况1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 解决方法如下: 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 |