'insert into' 来自更多源表

'insert into' from more source-tables

我想从三个不同的 table 中插入一个 table, 但下面的第一个陈述有效,下一个无效。 我应该怎么办?

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';

查询select * into NewTable实际上根据select查询的结果创建那个NewTable然后插入这些结果。

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

insert into NewTable 
select * from tb ...

insert into NewTable 
select * from tc ...

注意 - 本例中的所有 table 都应具有相同的结构。

试试这个方法

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;

与其插入三个,不如做一个并 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';

下次,我不会 select * 进入 NewTable 从 SELECT * 来自 td where farm like'%aa' 显示错误:NewTable 已经存在。