向SqlServer數據庫插入數據


  1. Insert Values
  2. Insert Select
  3. Insert Exec
  4. Select Into
  5. 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'         
) 

 


免責聲明!

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



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