读书人

探讨一个多表插入的算法,该怎么处理

发布时间: 2012-03-30 17:32:09 作者: rapoo

探讨一个多表插入的算法
假设有A、B、C三张表,表的数据结构相同。

再新建一个数据结构相同的表D,

然后把 A,B,C三张表的数据都插入到D中, 顺序是 A1,B1,C1;A2,B2,C2……

请问怎么最优化。

[解决办法]
下想法:

三表的放入到三表中,且都加上一自增列。

然後三表中的插入到D表中,按照自增列排序,可以到效果。

如果三表的多,生成表可能花些。
[解决办法]
将鱼的改改才行吧
Select ID = Identity(Int, 1, 3) , * Into #A From A
Select ID = Identity(Int, 2, 3) , * Into #B From B
Select ID = Identity(Int, 3, 3) , * Into #C From C

insert D select 不含id的列的列表
From
(Select * From #A
Union All
Select * From #B
Union All
Select * From #C) T
Order By ID

[解决办法]
--union all里加编号排序
create table A(col1 int,col2 int,col3 int)
create table B(col1 int,col2 int,col3 int)
create table C(col1 int,col2 int,col3 int)

insert A select 1,2,3
union all select 4,5,6

insert B select 7,8,9
union all select 10,11,12

insert C select 13,14,15
union all select 16,17,18

select * into D from
(
select col1,col2,col3,bh=1 from A
union all
select col1,col2,col3,bh=2 from B
union all
select col1,col2,col3,bh=3 from C
)t
order by bh

select col1,col2,col3 from D

drop table A,B,C

col1 col2 col3
----------- ----------- -----------
1 2 3
4 5 6
7 8 9
10 11 12
13 14 15
16 17 18

读书人网 >SQL Server

热点推荐