這2種方式為:完整複製資料表、複製一部份資料到另一個資料表
基本上2種方式功能看起來差不多但容易搞混,這邊分別說明:


 

1、複製資料表到全新資料表
複製舊資料表(來源資料表 )至新資料表(目標資料表),目標資料表必須為全新資料表(select * into 新資料表 from 來源資料表),也就是說這語法不能倒資料在已存在的資料表
select * into book_tmp from book 
select * into 目標資料表 from 來源資料表

例如:
select * into [data].[dbo].[test] from [data].[dbo].[test_1]
可以用where過濾條件

 

2、複製資料到已存在的資料表
把舊資料表(來源資料表)的資料放入同樣表格的新資料表(目標資料表),目標資料表為已存在的資料表(INSERT INTO 目標資料表 SELECT from 來源資料表)
例如下面的寫法:
INSERT INTO [data].[dbo].[test] (id, context)
SELECT *
FROM [data].[dbo].[test_1];
可以用where過濾條件

簡單地說如下所示:
INSERT INTO 目標資料表(欄位名稱)
SELECT *
FROM 來源資料表;
where......



看起來很像但實際有很大不同,通常用2這個方式比較多,但要留意有些情況下一定要附欄位,紅字的部份是這二者較大的差別,就整理在這邊相信會簡單很多。

--

arrow
arrow

    貓羽 發表在 痞客邦 留言(0) 人氣()