'插入'来自更多的源表

时间:2015-10-30 07:35:11

标签: sql sql-server insert

我想从三个不同的表中插入一个表, 但下面的第一个声明有效,下一个声明没有。 我该怎么办?

SELECT * into NewTable from ta where farm like'%aa';
SELECT * into NewTable from tb where farm like'%aa';
SELECT * into NewTable from tc where farm like'%aa';

4 个答案:

答案 0 :(得分:0)

根据select query的结果,NewTable实际创建 insert into NewTable select * from tb ... insert into NewTable select * from tc ... ,然后插入这些结果。

因此,为了在第一次查询后插入到已存在的表中,将第二个和第三个更改为

{{1}}

注意 - 在这种情况下,所有表都应具有相同的结构。

答案 1 :(得分:0)

试试这种方式

select * into NewTable  from (
SELECT * from ta where farm like'%aa'
Union all
SELECT * from tb where farm like'%aa'
Union all
SELECT * from tc where farm like'%aa'
)a;

答案 2 :(得分:0)

而不是三个插入更好的做一个和UNION您的结果:

SELECT * into NewTable 
from ta 
where farm like'%aa'

UNION ALL

SELECT * 
from tb
where farm like'%aa'

UNION ALL

SELECT * 
from tc 
where farm like'%aa';

答案 3 :(得分:0)

下次,我不会 从中选择*进入NewTable SELECT *来自td,其中农场就像'%aa' 显示错误:NewTable已经存在。