1. 程式人生 > >SQL複製資料表 (select * into 與 insert into)

SQL複製資料表 (select * into 與 insert into)

SQL複製資料表 (select * into 與 insert into)

 

select * into 目標表名 from 源表名 where .....

insert into 目標表名(fld1, fld2) select fld1, 5 from 源表名

 

以上兩句都是將 源表 的資料插入到 目標表,但兩句又有區別的:

第一句(select into from)要求目標表不存在,因為在插入時會自動建立。 
第二句(insert into select from)要求目標表存在,由於目標表已經存在,所以我們除了插入源表的欄位外,還可以插入常量,如例中的:5。

 

1:複製表結構及資料到新表

 

select * into 目的資料庫名.dbo.目的表名 from 原表名

select * into my0735home.dbo.infoMianTest from infoMian

 

2:備份表的一部分列(不寫*而寫出列的列表)

select 列名1,列名2,列名3 into 目的資料庫名.dbo.目的表名 from 原表名

select id,title,mtype,stype,author,tel,nr into infoMianTest2 from infomian

 

3:備份表的一部分行(加WHERE條件)

select * into 目的資料庫名.dbo.目的表名 from 原表名 where id<10

select * into infomiantest2 from infomian where id<10

 

4:備份表的一部分列(不寫*而寫出列的列表)和一部分行(加WHERE條件)

select 列名1,列名2,列名3 into 目的資料庫名.dbo.目的表名 from 原表名 where  id<10

 

5:只複製表的結構:如:SELECT * INOT t1 FROM titles WHERE 1=2

 

6:查詢結果來源於多個表:如:

SELECT title_id,title,pub_name INTO t3

FROM titles t INNER JOIN publishers p

ON t.pub_id=p.pub_id