SQL Server 2008R2 Set IDENTITY_INSERT 表名 ON/OFF不能与insert into select 的语句一起执行?

大家都知数据库表中的列可以自增长,但是有时候我们需要插入数据的时候会指定这一列的数据。

这时候我们可以很简单的利用sql语句来执行新增一条的数据,如下:

set IDENTITY_INSER 表名 on

insert into 表名(列1,列2,...)values (值1,值2,...);

当然咯,不能忘记还原这一列的自增长啊

Set IDENTITY_INSERT 表名 OFF

我们大家都只知道,批量插入语句有一条比较简单的SQL

insert into 表1 select 列1,列2,.. from 表2 

这时候将set IDENTITY_INSER 表名 on与insert into 表1 select 列1,列2,.. from 表2 这两句执行就会报错

 IDENTITY_INSERT 为 ON 时,才能为表'表名'中的标识列指定显式值

这就很BAD,这是因为啥子原因啊,求指教。。。

原文地址:https://www.cnblogs.com/huage-1234/p/10900733.html