日期:2014-05-16 浏览次数:20842 次
功能:将查询的结果放到一个新表中去,查询结果可以来源于一个表或多个表
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
4.?查询结果来源于多个表:如:
SELECT title_id,title,pub_name INTO t3
FROM titles t INNER JOIN publishers p
ON t.pub_id=p.pub_id
?
Oracle中使用CREATE TABLE … AS SELECT… 语句
实现的功能与SQL SERVER中基本相同,只是语法不同。例如:
CREATE TABLE dept_bak AS SELECT * FROM dept;
?
请注意:使用此种方法生成的新表中没有主键等约束,如果需要加,请另外创建。
?
此外,批量插入数据的语句在SQL SERVER 和Oracle中是相同的,都是INSERT INTO SELECT……,如:
INSERT INTO t1 SELECT * FROM titles
INSERT INTO dept_bak SELECT * FROM dept;
?
来源:http://www.cnblogs.com/lgzslf/archive/2008/11/25/1340323.html