如何复制其它表的结构到一指定的表中去,比如以下的例子:
有如下三个表:
表A:字段1, 字段2, 字段3
表B:字段1, 字段2, 字段3
表C:字段1, 字段2, 字段3
现在想复制A表的字段1,B表的字段2,C表的字段3到表4中去。不需要表中的数据。
用SQL语句应如何实现呢?
这里需要考虑一个问题,所到的指定表是不是空表?所以,我们有以下两种情况分别说说: /*table4不存在时*/
select a.col1, b.col2, c.col3
into table4
from tableA a, tableB b, tableC c
[color=red]where 1 = 0[/color] //有的写 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'
[color=blue]sql复制表结构和数据 [/color]
功能:将查询的结果放到一个新表中去,查询结果可以来源于一个表或多个表
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
有如下三个表:
表A:字段1, 字段2, 字段3
表B:字段1, 字段2, 字段3
表C:字段1, 字段2, 字段3
现在想复制A表的字段1,B表的字段2,C表的字段3到表4中去。不需要表中的数据。
用SQL语句应如何实现呢?
这里需要考虑一个问题,所到的指定表是不是空表?所以,我们有以下两种情况分别说说: /*table4不存在时*/
select a.col1, b.col2, c.col3
into table4
from tableA a, tableB b, tableC c
[color=red]where 1 = 0[/color] //有的写 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'
[color=blue]sql复制表结构和数据 [/color]
功能:将查询的结果放到一个新表中去,查询结果可以来源于一个表或多个表
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