热门文章
 
数据库查询语言sql(2)
数据库查询语言SQL(1)
selecet in子句
SELECT:BETWEEN
select:like操作数
SQL中的数字函数
sql:嵌套查询
create语法:用SQL创
insert:向表中添加数据
drop/alter:删除表
 推荐文章
 
删除一个表中某个字段重复的列
跟日期有关的两条经典SQL语
selecet in子句
常用SQL书写技巧
select:like操作数
SQL中的数字函数
sql:嵌套查询
数据库查询语言sql(2)
insert:向表中添加数据
drop/alter:删除表
sql:建立索引
SQL语句:删除记录 del
sql更新语句:update
用SELECT复制记录和表
sql:匹配和字符串转换
sql中日期和时间的操作
 
你现在的位置:您现在的位置是: 中国ASP>>数据库>>SQL语句
数据库合并


   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 把两个数组的内容复制进来
 这一部分自己写了做两个循环
 然后再存进数据库
 %>

相关信息:

数据库查询语言sql(2)
数据库查询语言SQL(1)
sql求两字符串相似度的自定义函数
在 Access 中使用“存储过程”
ASP调用带参数存储过程
ASP与存储过程
实用的存储过程1
实用的存储过程2
SQL Server编写存储过程小工具

 

中国ASP技术 ASP.ORG.CN 版权所有 2004-2008