MSSQL报错“仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'pis_t'中的标识列指定显式值”
Tags: IDENTITY_INSERTMSSQL报错故障处理
现象
SQL SERVER数据库,
1 | insert into pis_t SELECT * FROM dbo.pis_t_220330 ; |
结果报错:
仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'pis_t'中的标识列指定显式值
解决
1、配置IDENTITY_INSERT为ON
2、表名后需要列出所有的列
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | -- 获取所有列,并使用列模式编辑 sp_columns pis_t; SET IDENTITY_INSERT pis_t ON; insert into pis_t(Com,Branch,Shop) SELECT Com,Branch,Shop,Stroke FROM dbo.pis_t_220330 ; SET IDENTITY_INSERT pis_t OFF; -- 插入语句也可以如下写,但目标表后必须有列名 insert into pis_t(Com,Branch,Shop) SELECT * FROM dbo.pis_t_220330 ; |