仅当使用了列的列表并且 IDENTITY_INSERT 为 ON 时,才能为表'SpeType'中的标识列指定显式值

 尊重原著作:本文转载自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

  当你标明字段名后,就不会报错了。

原文地址:https://www.cnblogs.com/hlxt548826/p/3949750.html