自增列SET IDENTITY_INSERT products11 on 得问题?????

CREATE TABLE products11 (id int IDENTITY PRIMARY KEY, product varchar(40))
INSERT INTO products11 (product) VALUES ('screwdriver')
INSERT INTO products11 (product) VALUES ('hammer')
INSERT INTO products11 (product) VALUES ('saw')
INSERT INTO products11 (product) VALUES ('shovel')

CREATE TABLE products12 (id int , product varchar(40))
INSERT INTO products12 (id,product) VALUES ('3','screwdriver')

DELETE products11
WHERE product = 'saw'
SELECT * FROM products12

SET IDENTITY_INSERT products11 on
INSERT INTO products11 (id, product) VALUES(3, 'garden shovel')

DELETE products11
WHERE product = 'garden shovel'
--这里也有错误
SET IDENTITY_INSERT products11 on
insert into products11 select  [id] , product from products12
--这个问题该怎么弄,对于这个自增列,insert into select 怎么就不可以了?因为插入products11的数据由products12得来,不想用游标,有什么办法解决?

DROP TABLE products11
DROP TABLE products12

作者: antony1029   发布时间: 2006-07-21

将语句insert into products11 select [id] , product from products12修改为
insert into products11([id] , product) select [id] , product from products12

作者: andy1995   发布时间: 2006-07-21

谢谢  andy1995 !
原来这么简单啊!呵呵

作者: antony1029   发布时间: 2006-07-21

set   IDENTITY_INSERT tb    on
--命令成功完成
insert into tb
SELECT *
  FROM OPENROWSET('sqloledb',
        'DRIVER={SQL Server};SERVER=127.0.0.1;UID=sa;PWD=sa',   
        [414].dbo.tb2)  where 日期<='2011-04-04 00:00:00.000'
--仍然提示‘仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'mxz'中的标识列指定显式值。’
baidu了下,基本上都是用
insert into 表1 ([ID],pb,dd)
select [ID],pb,dd from 表2
非要把自增列加上[]并且把列名加上吗?不能insert into 表1 select * from 表2吗?字段名好难写,呵呵。

作者: qinliouzhou   发布时间: 2011-04-16