怎么把一个SQL数据库内的三个关系相同的表合并为一个表

来源:百度知道 编辑:UC知道 时间:2024/06/27 17:27:02
我的是一个DiscuzNT2.0网站,由于网站数据较多,我在后台利用DiscuzNT2.0自带的分表功能,把帖子数据表分成了三个表,由原来的POST,分为POST2和POST3,这样SQL数据库内就有了以这三个命名的表,这三个表内的数据及关系全部是一样的,我现在想把这几个表合并起来,我也就是说把POST2和POST3的两个表数据合并到POST内,在这里不要求合并后网站能不能访问,只要能够把POST2和POST3的两个表数据合并就行,不知道这样可以实现不,说简单点就是把POST2和3的数据依次插入POST表的最后面.

请问哪位老师知道怎么操作,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(