select a.col1, b.col2, c.col3
into table4
from tableA a, tableB b, tableC c
where 1 = 0 //有的写 where 1 = 2 ???
但是,一旦表4已经存在的话,会报错。如果是想在表4中增加这几个字段,但这些字段的数据不需要添加到表4中来 select
*
into 表5
from
表4 m
left join
(select a.字段1,b.字段2,c.字段3 from 表A a,表B b,表C c where 1<>1) n
on
1=1
drop table 表4
exec sp_rename '表5','表4'
sql复制表结构和数据
功能:将查询的结果放到一个新表中去,查询结果可以来源于一个表或多个表
SQL SERVER中使用SELECT … INTO语句
按照使用场合可以分为以下几类:
1. 实现全表备份:如:SELECT * INOT t1 FROM titles
2. 备份表的一部分列(不写*而写出列的列表)或一部分行(加WHERE条件)
如: SELECT title_id,title,price INTO t2 FROM titles—部分列
SELECT * INTO t2 FROM titles WHREE price>10 –部分行
SELECT title_id,title,price INTO t2 FROM titles WHREE price>10 –部分行和部分列
3. 只复制表的结构:如:SELECT * INOT t1 FROM titles WHERE 1=2