有時候我們可能會把CSV中的數(shù)據(jù)導入到某個數(shù)據(jù)庫的表中,比如做報表分析的時候。
對于這個問題,我想一點也難不倒程序人員吧!但是要是SQL Server能夠完成這個任務,豈不是更好!
對,SQL Server確實有這個功能。
首先先讓我們看一下CSV文件,該文件保存在我的D:盤下,名為csv.txt,內容是:
現(xiàn)在就是SQL Server的關鍵部分了;
我們使用的是SQL Server的BULK INSERT命令,關于該命令的詳細解釋,請點擊此處;
我們先在SQL Server中建立用于保存該信息的一張數(shù)據(jù)表,
CREATE TABLE CSVTable( Name NVARCHAR(MAX), Email NVARCHAR(MAX), Area NVARCHAR(MAX) ) |
然后執(zhí)行下面的語句:
BULK INSERT CSVTable FROM 'D:\csv.txt' WITH( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' ) SELECT * FROM CSVTable |
按F5,執(zhí)行結果如下:
2,CSV文件的列值全部是由雙引號組成的:
這個問題要比上一個稍微復雜點,除了要先把CSV文件導入到臨時表中,還必須修改一下在把CSV文件導入到臨時表的代碼:
注意圈中的部分。
3,CSV文件的列要多于數(shù)據(jù)表的列:
而我們的數(shù)據(jù)表只有三列,如果在執(zhí)行上面的導入代碼,會產生什么結果呢?
結果就是: