怎么把一个SQL数据库内的三个关系相同的表合并为一个表
来源:百度知道 编辑:UC知道 时间:2024/06/27 17:27:02
请问哪位老师知道怎么操作,SQL语句怎么实现,或者有没有相关的软件,如果需要SQL语句,请写出,感谢.
max0960 我的表有70多万数据,如果一个一个的加可能有点脑火.
shaoshuai_bd 我试了,这种方法怎么搞都不行,出错.
给出表结构吧
或者借用excel表的方法:
首先,用exec master..xp_cmdshell 'bcp "aa..POST" out "d:\tt.xls" -c -SQINKD-Usa -Psa'将POST 表的所以数据导到excel中。
注意:aa是你的数据库名称,放在d盘下的名称为tt的excel表中,SQINKD是你的服务管理器器名称。
第二, 再依照这个方法,master..xp_cmdshell 'bcp "aa..POST2" out "d:\tt2.xls" -c -SQINKD-Usa -Psa'将剩下的2个表导出,如果你的三个表结构相同,excel名称不变即可。
第三,把POST3也按照这个方法导出master..xp_cmdshell 'bcp "aa..POST2" out "d:\tt3.xls" -c -SQINKD-Usa -Psa'。
第四,整合这三个excel,数据怎么放看你自己的了,并取名为post.xls。
第五,新建一个新表new_post,表结构与POST相同,用
insert into new_post
select *
from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=d:\post.xls',sheet1$)这个语句导入整合的所有数据。之后建议将原来的三个表内容删除以节约空间,一定要等所有操作完成之后删除原表。
别看多,共就四条语句,操作起来很简单,几分钟就搞定了。
wjzhch1,不用急的,就用max0960的方法,不过再加个限制条件limit,每次加5000条,这样你就不用一次等70万条数据插入时间,悠着点,呵呵
类似下面这样
insert into post(c1,c2,c3,...)values(