尊重原著作:本文转载自http://blog.163.com/lao12qi12345%40126/blog/static/1179155120101122113316187/
情况描述
在表TableName 中设有标识列,标识种子为1000,现我要从另一个相同结构的表导入数据,用如下语句:
SET IDENTITY_INSERT TableName ON
insert into TableName select * from TableName2
SET IDENTITY_INSERT TableName OFF
报错为:
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'TableName' 中为表识列指定显式值。
解决办法
必须显示的表名字段名:
SET IDENTITY_INSERT del ON
insert into del(id,birthday) select id,birthday from del --标明字段名
SET IDENTITY_INSERT del OFF
当你标明字段名后,就不会报错了。