使用SQL語句的子查詢批量復制表數據


批量復制表數據這里有兩種方法,下面分別來介紹這兩種方法:

一、手動創建新表,然后復制數據

如果是要復制整個表的話,可以使用SQL SERVER自動生成CREATE腳本:

QQ截圖20130809154431

然后在腳本中改改表名就可以了,這樣就有了一張和原來一模一樣的新表。

· INSERT INTO SELECT

語句形式為:Insert into Table2(field1,field2,...) select value1,value2,... from Table1

說明:要求目標表Table2必須存在,由於目標表Table2已經存在,所以我們除了插入源表Table1的字段外,還可以插入常量。

QQ截圖20130809155215

圖中是本例使用的源表的結構(當然目標表和它是一模一樣的),因為目前復制的這張表含有主鍵,並且設為標識自動增長,所以在向新表插入數據時會發生不允許向標識列插入數據的錯誤,請參考文章:http://www.cnblogs.com/xwgli/p/3210928.html

本例的SQL語句即為:
insert into Categories2([CategoryID],[CategoryName],[Description],[Picture])
select * from Categories 
 
 
二、直接復制數據,在復制過程中自動創建新表
 
· SELECT INTO FROM

語句形式為:SELECT vale1, value2,… into Table2 from Table1
說明:要求目標表Table2不存在,因為在插入時會自動創建表Table2,並將Table1中指定字段數據復制到Table2中。

同樣還是上一張表為例,SQL語句:

select * into Categories3 from Categories

但此時新表Categories3的設計就只有字段名、字段類型、是否為空與源表保持一致,主鍵外鍵等約束會消失,需要自行手動添加。

QQ截圖20130809155857

以上就是兩種批量復制數據的SQL語句。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM