首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

insert into 表1 select * from 表2的有关问题

2012-01-19 
insert into 表1 select * from 表2的问题表t1,t2结构相同,其中第一个字段为id字段是标记字段,自动增加。用

insert into 表1 select * from 表2的问题
表t1,t2结构相同,其中第一个字段为id字段是标记字段,自动增加。
用insert   into   t2   select   *   from   t1   从t1插入记录到t2会提示错误
“仅当使用了列的列表,并且   IDENTITY_INSERT   为   ON   时,才能在表   't2 '   中为标识列指定显式值。”
但是把语句改成 "   insert   into   t2   select   除id字段外的各字段列表   from   t1   "就可以执行但是这样的话就很不方便,我的t2表有上百个字段,那不能用*号的话岂不是要把这一百来个字段一个个写出来....
有没有解决办法呢?

[解决办法]
set IDENTITY_INSERT t2 ON
insert into t2 select * from t1
set IDENTITY_INSERT t2 OFF

[解决办法]
你的id字段是主关键字字段,系统要求主关键字不能有重复的,如果你用*的话当然就行不通了。你可以不把id字段定义为标识字段,这样就没有问题了。
[解决办法]
SET QUOTED_IDENTIFIER ON
GO
--
insert into t2 select * from t1
SET QUOTED_IDENTIFIER OFF
GO
[解决办法]
insert into t2 select * from t1
中有自动增长列~~~~在select * from t1 中把自动增长列提出(指定非自动增长列)就可以了!
[解决办法]
如果你的ID字段为主键的话那样插入肯定是不可以的,你可以这样试试
insert into t1 (字段1,字段2.....安段N)
select XXXXX from t2
注:(字段1,字段2.....安段N)中不包括ID安段,XXXXX为前面括号中内容一样的字段.

热点排行