標籤:style blog color 使用 ar strong 檔案 資料 div
- Insert Values
- Insert Select
- Insert Exec
- Select Into
- Bulk Insert
Insert Values是最常用的一種插入資料的方式,基本文法如下,表名之後可以指定目標列的名稱,這種顯式的指定目標列的名稱是可選的,但是這種做法的好處是對語句的列值列名之間的關聯關係進行控制,而不必單純的依賴定義表時
各個列出現的順序
INSERT INTO dbo.DimDate ( DataKey , Year , Qu , QuCN , Month , MonthCN , Ten , TenCN , Week , WeekDay , Day , Date )VALUES ( 0 , -- DataKey - int 0 , -- Year - int 0 , -- Qu - int ‘‘ , -- QuCN - varchar(20) 0 , -- Month - int ‘‘ , -- MonthCN - varchar(20) 0 , -- Ten - int ‘‘ , -- TenCN - varchar(20) 0 , -- Week - int ‘‘ , -- WeekDay - varchar(20) 0 , -- Day - int ‘2014-09-23 13:34:16‘ -- Date - datetime )
確定列值的優先順序順序:給定的值》預設值》Null
Sql2008增強了Values功能,允許在一條語句中指定由逗號隔開的多條記錄
INSERT INTO dbo.Table_1 ( ID ) VALUES ( 0 ),( 1 ),( 2 )
使用Values構建虛擬表
SELECT * FROM (VALUES ( 0 ),( 1 ),( 2 )) AS a(id)
Insert Select
Insert Select 將一組由Select查詢返回的結果行插入到目標表中(目標表是已經存在的表,這一點和Select Into有區別)
INSERT INTO dbo.Table_1 SELECT * FROM dbo.Table_2
Insert Exec
Insert Exec 語句可以把預存程序或動態Sql批處理返回的結果集插入到目標表
Select Into
Select Into的作用是建立一個目標表,並用返回的結果集填充它,不能用這個語句向已經存在的表中插入資料,
當指定的目標表是暫存資料表時自動建立一個暫存資料表,指定為使用者表時建立一個使用者表,
Select Into 會複製來源表的基本結構(包括列名、資料類型、是否允許NUll以及IDentity屬性),不會複製的三樣東西(約束、索引、觸發器)
Select into的另一個優點:如果資料庫的屬性沒有設定成完成復原模式,Select into 就會按照最小日誌記錄模式來執行操作
Bulk Insert
這種方式用的比較少,用於將檔案中的資料匯入一個已經存在的表
樣本本例從指定的資料檔案中匯入訂單詳細資料,該檔案使用豎杠 (|) 字元作為欄位結束字元,使用 |/n 作為行終止符。
BULK INSERT Northwind.dbo.[Order Details] FROM ‘f:/orders/lineitem.tbl‘ WITH ( FIELDTERMINATOR = ‘|‘, ROWTERMINATOR = ‘|/n‘ )
向SqlServer資料庫插入資料