多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > Sqlserver > SQL從文本導數據到數據庫用到的BULK INSERT

SQL從文本導數據到數據庫用到的BULK INSERT

來源:程序員人生   發布時間:2014-04-27 21:04:46 閱讀次數:3549次
  建站學院文檔 如果你從事與數據庫相關的工作,有可能會涉及到將數據從外部數據文件插入倒SQL Server的操作。本文將為大家演示如何利用BULK INSERT命令來導入數據,并講解怎樣通過改變該命令的一些選項以便更方便且更有效地插入數據。

  BULK INSERT

  在SQL Server中,BULK INSERT是用來將外部文件以一種特定的格式加載到數據庫表的T-SQL命令。該命令使開發人員能夠直接將數據加載到數據庫表中,而不需要使用類似于Integration Services這樣的外部程序。雖然BULK INSERT不允許包含任何復雜的邏輯或轉換,但能夠提供與格式化相關的選項,并告訴我們導入是如何實現的。BULK INSERT有一個使用限制,就是只能將數據導入SQL Server。

  插入數據下面的例子能讓我們更好的理解如何使用BULK INSERT命令。首先,我們來創建一個名為Sales的表,我們將要把來自文本文件的數據插入到這個表中。
CREATE TABLE [dbo].[Sales] 

[SaleID] [int], 
[Product] [varchar](10) NULL, 
[SaleDate] [datetime] NULL, 
[SalePrice] [money] NULL 

    當我們使用BULK INSERT命令來插入數據時,不要啟動目標表中的觸發器,因為觸發器會減緩數據導入的進程。

  在下一個例子中,我們將在Sales表上創建觸發器,用來打印插入到表中的記錄的數量。
 
CREATE TRIGGER tr_Sales 
ON Sales 
FOR INSERT 
AS 
BEGIN 
PRINT CAST(@@ROWCOUNT AS VARCHAR(5)) + ' rows Inserted.' 
END

    這里我們選擇文本文件作為源數據文件,文本文件中的值通過逗號分割開。該文件包含1000條記錄,而且其字段和Sales表的字段直接關聯。由于該文本文件中的值是由逗號分割開的,我們只需要指定FIELDTERMINATOR即可。注意,當下面這條語句運行時,我們剛剛創建的觸發器并沒有啟動:
  
BULK INSERT Sales FROM 'c:SalesText.txt' WITH (FIELDTERMINATOR = ',')

  當我們要的數據量非常大時,有時候就需要啟動觸發器。下面的腳本使用了FIRE_TRIGGERS選項來指明在目標表上的任何觸發器都應當啟動:
  
BULK INSERT Sales FROM 'c:SalesText.txt' WITH (FIELDTERMINATOR = ',', FIRE_TRIGGERS)

  我們可以使用BATCHSIZE指令來設置在單個事務中可以插入到表中的記錄的數量。在前一個例子中,所有的1000條記錄都在同一個事務中被插入到目標表里。下面的例子,我們將BATCHSIZE參數設置為2,也就是說要對該表執行500次獨立的插入事務。這也意味著啟動500次觸發器,所以將有500咯打印指令輸出到屏幕上。
BULK INSERT Sales FROM 'c:SalesText.txt' WITH (FIELDTERMINATOR = ',', FIRE_TRIGGERS, BATCHSIZE = 2)

  BULK INSERT不僅僅可以應用于SQL Server 2005的本地映射驅動器。下面的語句將告訴我們如何從名為FileServer的服務器的D盤中將SalesText文件的數據導入。
BULK INSERT Sales FROM 'FileServerD$SalesText.txt' WITH (FIELDTERMINATOR = ',')

  有時候,我們在執行導入操作以前,最好能先查看一下將要輸入的數據。下面的語句在使用BULK命令時,使用了OPENROWSET函數,以便從SalesText文本文件中讀取源數據。該語句同時還需要使用一個格式文件(此處沒有列出文件的具體內容)來表明該文本文件中的數據格式。

SELECT * 
FROM OPENROWSET(BULK 'c:SalesText.txt' , 
FORMATFILE='C:SalesFormat.Xml' 
) AS mytable; 
GO 

 
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产精品ⅴ视频免费观看 | 国产在线精品福利一区二区三区 | 久久精品国产一区二区三区不卡 | 中文字幕巨大乳在线看 | 猫咪www免费人成网站 | 国产精品久久久久久网站 | 亚洲精品一区久久狠狠欧美 | 亚洲综合一区二区精品久久 | 亚洲网站视频 | 中文字幕一区精品 | 亚洲日韩中文字幕在线播放 | 成人精品一区二区久久 | 狂野黑人性猛交xxxxxx | 最近免费中文字幕大全免费 | 久久五月网 | 偷柏自拍亚洲欧美综合在线图 | 久久久久久久久久久观看 | 伊人丁香婷婷综合一区二区 | 亚洲精品影院久久久久久 | 国产成人一区二区三区影院免费 | 国产成人精品在视频 | 国产欧美一区二区三区小说 | 男女同房视频免费爽爽 | 国产精品毛片一区二区三区 | 美女网站视频免费 | 日韩美一区二区三区 | 国产欧美二区 | 波多野结衣在线观看一区二区三区 | 亚洲视频自拍偷拍 | 永久免费在线视频 | 欧美精品日韩 | 精品久久久久国产免费 | 一区二区三区毛片免费 | 成人午夜在线视频 | 波多野结衣日韩 | 最近中文字幕无吗高清视频 | 亚洲国产人久久久成人精品网站 | 欧美熟妇下面毛毛黑森林 | 亚洲福利片 | 免费观看性行为的视频网站 | 性欧美高清极品xx |