批量復制表數據這里有兩種方法,下面分別來介紹這兩種方法:
一、手動創建新表,然后復制數據
如果是要復制整個表的話,可以使用SQL SERVER自動生成CREATE腳本:
然后在腳本中改改表名就可以了,這樣就有了一張和原來一模一樣的新表。
· INSERT INTO SELECT
語句形式為:Insert into Table2(field1,field2,...) select value1,value2,... from Table1
說明:要求目標表Table2必須存在,由於目標表Table2已經存在,所以我們除了插入源表Table1的字段外,還可以插入常量。
圖中是本例使用的源表的結構(當然目標表和它是一模一樣的),因為目前復制的這張表含有主鍵,並且設為標識自動增長,所以在向新表插入數據時會發生不允許向標識列插入數據的錯誤,請參考文章: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的設計就只有字段名、字段類型、是否為空與源表保持一致,主鍵外鍵等約束會消失,需要自行手動添加。
以上就是兩種批量復制數據的SQL語句。