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

skh2000 2007-02-05 11:20:30
表t1,t2结构相同,其中第一个字段为id字段是标记字段,自动增加。
用insert into t2 select * from t1 从t1插入记录到t2会提示错误
“仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 't2' 中为标识列指定显式值。”
但是把语句改成" insert into t2 select 除id字段外的各字段列表 from t1 "就可以执行但是这样的话就很不方便,我的t2表有上百个字段,那不能用*号的话岂不是要把这一百来个字段一个个写出来....
有没有解决办法呢?
...全文
1067 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
skh2000 2007-02-05
  • 打赏
  • 举报
回复
txt_ly() baoshan(石头) 你们的方法我试了一下,依然还是那个错误提示...
至于楼下各位所说的要把各字段列出来,这个方法就是不想用才上来问的...
mw023511 2007-02-05
  • 打赏
  • 举报
回复
如果你的ID字段为主键的话那样插入肯定是不可以的,你可以这样试试
insert into t1 (字段1,字段2.....安段N)
select XXXXX from t2
注:(字段1,字段2.....安段N)中不包括ID安段,XXXXX为前面括号中内容一样的字段.
w75251455 2007-02-05
  • 打赏
  • 举报
回复
也可以说~~~你的t2表里有自动增长列~~~共三字段~~那么你只要指定插入两个字段就可以了
w75251455 2007-02-05
  • 打赏
  • 举报
回复
insert into t2 select * from t1
中有自动增长列~~~~在select * from t1 中把自动增长列提出(指定非自动增长列)就可以了!
txt_ly 2007-02-05
  • 打赏
  • 举报
回复

SET IDENTITY_INSERT t2 ON
GO
--语句
insert into t2 select * from t1
SET IDENTITY_INSERT t2 OFF
GO
txt_ly 2007-02-05
  • 打赏
  • 举报
回复
SET QUOTED_IDENTIFIER ON
GO
--
insert into t2 select * from t1
SET QUOTED_IDENTIFIER OFF
GO
qyhxx 2007-02-05
  • 打赏
  • 举报
回复
你的id字段是主关键字字段,系统要求主关键字不能有重复的,如果你用*的话当然就行不通了。你可以不把id字段定义为标识字段,这样就没有问题了。
baoshan 2007-02-05
  • 打赏
  • 举报
回复
set IDENTITY_INSERT t2 ON
insert into t2 select * from t1
set IDENTITY_INSERT t2 OFF

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧