向SqlServer数据库插入数据
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数据库插入数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue服务端渲染实践
- 下一篇: 【两】的拼音、繁体字、笔画