相同结构的表互相复制数据遭到自动编号类字段干扰而不成功,求助。。。

吴泉 2007-06-05 01:04:16
目标:一个表 a 里面的若干条数据要复制到另一个表 b 当中去

状况:a,b标结构字段名完全相同,但是就是有个自动编号的字段可能会有重复,asp开发环境。a,b的结构如下

字段名 t0,t1,t2,其中t0是自动编号。

提问:如何让a表里的数据在增加到b表时,让t0按照b表的规则自动增加

曾经试过
1、insert into a select t1,t2 from b ,access查询里面执行通过,但是asp下运行提示目标表字段数目不匹配。
2、insert into a select * from b access,asp环境皆不通过,原因主键有重复。

咋整?help!在线等。。。。。
...全文
539 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwwb 2007-06-05
  • 打赏
  • 举报
回复
jet sql不是T-SQL,下面的也可以加[]
吴泉 2007-06-05
  • 打赏
  • 举报
回复
哦,要研究下为什么 下面select tableid 和建表的时候不自动帮我加[],我记得sqlserver里面会自动加[]的。
wwwwb 2007-06-05
  • 打赏
  • 举报
回复
是JET SQL的保留字,要加[]
吴泉 2007-06-05
  • 打赏
  • 举报
回复
wwwwb,果然,tableid为什么不是标准的标识符?
wwwwb 2007-06-05
  • 打赏
  • 举报
回复
insert into ftb ([tableid],inputid,inputbm,auditbm,rybm,feno,fname,fsfzh,fbasis,famount,ftax,fmoney,fsign,fremarks,fstatus,applydate,uncheck) select tableid,inputid,inputbm,auditbm,rybm,feno,fname,fsfzh,fbasis,famount,ftax,fmoney,fsign,fremarks,fstatus,applydate,uncheck from ftbtmp where tableid='a28020002270524093013'
吴泉 2007-06-05
  • 打赏
  • 举报
回复
insert into ftb (tableid,inputid,inputbm,auditbm,rybm,feno,fname,fsfzh,fbasis,famount,ftax,fmoney,fsign,fremarks,fstatus,applydate,uncheck) select tableid,inputid,inputbm,auditbm,rybm,feno,fname,fsfzh,fbasis,famount,ftax,fmoney,fsign,fremarks,fstatus,applydate,uncheck from ftbtmp where tableid='a28020002270524093013'
OracleRoob 2007-06-05
  • 打赏
  • 举报
回复
SQL长度约为64KB,足够你用的。
OracleRoob 2007-06-05
  • 打赏
  • 举报
回复
可能是你的字段名不是标准的标识符,字段名加[]
wwwwb 2007-06-05
  • 打赏
  • 举报
回复
但是同样的17、8个字段的却提示insert into 语法错误,是不是sql语句长度有限制?

SQL语句贴出来看看
wwwwb 2007-06-05
  • 打赏
  • 举报
回复
1、将两表的自动编号字段删除,再insert into a select * from b,
结束后再添加自动编号字段;
2、insert into a(t1,t2) select t1,t2 from b
3、两表自动编号字段扣的值肯定有重复,没有办法在B表有自动编号字段
做主键的情况下原样插入,将B表的主键去掉,索引设为有重复可以插入。
吴泉 2007-06-05
  • 打赏
  • 举报
回复
其实我的a b两个表是字段很多的表,有大概17、8个,我用3个字段的insert into a(t1,t2)
select t1,t2 from b成功了,但是同样的17、8个字段的却提示insert into 语法错误,是不是sql语句长度有限制?
OracleRoob 2007-06-05
  • 打赏
  • 举报
回复
--这样:

insert into a(t1,t2)
select t1,t2
from b


--或:

insert into a
select t1,t2
from b
OracleRoob 2007-06-05
  • 打赏
  • 举报
回复
--对于目标表,列出字段列表

insert into a(不包含自动编号的字段列表)
select t1,t2
from b
OracleRoob 2007-06-05
  • 打赏
  • 举报
回复
一种方法是指定字段列表,可能这种不是你想要的。

一种办法是借助中间表:

(1)select * into 新表 from 你的表名

(2)将“新表”自动编号列删除,即:drop 掉自动编号列

(3)insert into 目标表 select * from 新表

7,713

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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