Insert Values
Insert Select
Insert Exec
Select Into
Bulk Insert
Insert Values是最常用的一種插入資料的方式,基本文法如下,表名之後可以指定目标列的名稱,這種顯式的指定目标列的名稱是可選的,但是這種做法的好處是對語句的列值列名之間的關聯關系進行控制,而不必單純的依賴定義表時
各個列出現的順序
确定列值的優先級順序:給定的值》預設值》Null
Sql2008增強了Values功能,允許在一條語句中指定由逗号隔開的多條記錄
使用Values建構虛拟表
Insert Select
Insert Select 将一組由Select查詢傳回的結果行插入到目标表中(目标表是已經存在的表,這一點和Select Into有差別)
Insert Exec
Insert Exec 語句可以把存儲過程或動态Sql批處理傳回的結果集插入到目标表
Select Into的作用是建立一個目标表,并用傳回的結果集填充它,不能用這個語句向已經存在的表中插入資料,
當指定的目标表是臨時表時自動建立一個臨時表,指定為使用者表時建立一個使用者表,
Select Into 會複制來源表的基本結構(包括列名、資料類型、是否允許NUll以及IDentity屬性),不會複制的三樣東西(限制、索引、觸發器)
Select into的另一個優點:如果資料庫的屬性沒有設定成完成恢複模式,Select into 就會按照最小日志記錄模式來執行操作
這種方式用的比較少,用于将檔案中的資料導入一個已經存在的表
示例本例從指定的資料檔案中導入訂單詳細資訊,該檔案使用豎杠 (|) 字元作為字段終止符,使用 |/n 作為行終止符。