在以往的一般狀況下,一次性向數據庫中插入多條數據的方法可能是用循環代碼一條一條地插入,這種方法在面臨百萬、千萬級別的數據時顯得毫無效率,一般要等待幾分鐘,甚至幾十分鐘;好在 MS SQL Server 提供了一個叫作 bulk insert 的方法,有了它就可以更加高效地導入大數據;使用方式並不複雜,用測試表舉例:sql
CREATE TABLE test ( ID INT IDENTITY(1,1) PRIMARY KEY, name VARCHAR(50), tel VARCHAR(50) )
其中主鍵 ID 爲自增標識列,另外兩個普通數據字段,而後再準備數據文件:數據庫
,henry,18011112222| ,mark,13011112222| ,join,14011112222| ,mary,15011112222| ,george,16011112222| ,henry,18011112222| ,mark,13011112222| ,join,14011112222| ,mary,15011112222| ,george,16011112222|
假設有一個叫作 d:\a.txt 的文件,文件內容如上,把那幾行數據複製成更多行以進行大數據測試;而後編寫 SQL 代碼:測試
BULK INSERT test FROM 'd:\a.txt' WITH(FIELDTERMINATOR=',',ROWTERMINATOR='|')
其中 with 後的標識符 fieldterminator 指字段分隔符,rowterminator 指行分隔符,這裏用的是 , 號和 | 號,結合準備好的數據文件能夠知道自左邊開始的列分別爲 ID、name 和 tel,這個數據文件中每一行的第一個 , 號前沒有數據,這是由於自增標識列能夠在數據文件中被省略,若是後面也省略的話,插入到表中的內容就爲 NULL,前提是列能夠爲 NULL;行分隔符的意思不用多解釋,到此執行 SQL 命令就能夠向 test 表中插入指定的數據,在個人電腦上插入 10 萬條數據僅僅只須要 1 秒鐘。大數據