| 数据库合并 |
|
access里的两个表,想让两个表的内容合并 表[a]结构如下: [id] 编号 自动编号 [name] 名称 文本 [price] 价格 数字 [guige] 规格 文本 [changjia] 生产厂家 文本 [baozhuang] 包装 文本 [danwei] 单位 文本 共有900条记录,除了id和name字段,其他均可以为空 表[b]结构如下: [id] 编号 自动编号 [name] 名称 文本 [price] 价格 数字 [changjia] 生产厂家 文本 [danwei] 单位 文本 [xingzhi] 性质 文本 共有800条记录,除了id和name字段,比表[a]少几个字段,但还多一个[xingzhi]的字符安其它均可以为空 现在想生成一个新表[c],结构如下,而且内容是两个表的内容之和。 [id] 编号 自动编号 [name] 名称 文本 [price] 价格 数字 [guige] 规格 文本 [changjia] 生产厂家 文本 [baozhuang] 包装 文本 [danwei] 单位 文本 [xingzhi] 性质 文本 用sql语句也可以,手工操作也好,xml也好,别管怎么着吧,怎么实现呀,哥们要郁闷坏了,真要让我们再输入800条记录,我就挂了。 回答: 1.这样 insert into c(id,name,.....) select id,name,..... from a insert into c(id,name,.....) select max(id)+1,name,..... from b 2.更正: 如果直接在查询分析器里执行: insert into c(name,.....) select name,..... from a insert into c(name,.....) select name,..... from b 3.用union方法 insert into [c] ([id] ,编号,自动编号) select [id],编号,自动编号 from [a] union select [id],编号,自动编号 from [b] 4.asp的解决办法 <% ''循环检测a表 Set rs = Server.CreateObect("ADODB.RECORDSET") rs.open "select * from a order by id",conn,1,1 Do while not rs.eof Call actAdd(rs("name")) ''调用像b表添加内容的函数! rs.MoveNext Loop rs.Close Set rs = Nothing Sub actAdd(txt) Dim ts, sql sql = "insert into b(name) values(''"& txt &"'')" Set ts = Conn.Execute(sql) ts.Close Set ts = Nothing end Sub %> 5.asp的解决办法 <% dim arr_temp1,arr_temp2,arr_data set rs=conn.execute("select id,name,price,guige,changjia,baozhuang,danwei from a") arr_temp1=rs.getrows rs.close set rs=nothing set rs=conn.execute("select id,name,price,guige,changjia,danwei,xingzhi from b") arr_temp2=rs.getrows rs.close set rs=nothing rem 开始处理 redim arr_data(ubound(arr_temp1,2)+ubound(arr_temp2,2),7) rem 把两个数组的内容复制进来 这一部分自己写了做两个循环 然后再存进数据库 %>
|
|