T-SQL筆記51_藉由BULK INSERT來將CSV檔案存入到暫存表

到政府公開資料平台網站 下載範本
此範本資料量較少但是很好的資料範本
https://data.gov.tw/dataset/164152

主要欄位說明
信用合作社別、總部分支機構別、金融代號、郵遞區號、所在縣市、行政區、住址、電話

將檔案另存成unicode編碼並更名為test.csv(不然讀取會出現中文亂碼!)
存放到DB Server的C槽temp目錄(可自己指定路徑)

開始撰寫SQL 腳本

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
drop table #bulkInsert

--CREATE TABLE #bulkInsert (col1 NVARCHAR(MAX) NULL)
CREATE TABLE #bulkInsert 
(信用合作社別 NVARCHAR(MAX) NULL,
總部分支機構別 NVARCHAR(MAX) NULL,
金融代號 NVARCHAR(MAX) NULL,
郵遞區號 NVARCHAR(MAX) NULL,
所在縣市 NVARCHAR(MAX) NULL,
行政區 NVARCHAR(MAX) NULL,
住址 NVARCHAR(MAX) NULL,
電話 NVARCHAR(MAX) NULL
)

BULK INSERT #bulkInsert
FROM 'C:\temp\test.csv'
WITH (
firstrow=2,
FIELDTERMINATOR = N',',
ROWTERMINATOR =N'\n'
);

SELECT *
FROM #bulkInsert

firstrow代表要從第幾橫列開始讀入,預設若沒指定會以第一橫列開始所以會把表頭也撈近來。
FIELDTERMINATOR = ','指定列之間的分隔符為逗號,ROWTERMINATOR = '\n'指定行終止符為換行符。




Ref:
How to BULK INSERT a file into a *temporary* table where the filename is a variable?
sql server bulk insert csv into temp table
SQL BULK INSERT
sql server2014使用BULK INSERT导入UTF-8数据中文乱码问题
如何將CSV檔轉UTF8編碼
BULK INSERT 有選項

留言

這個網誌中的熱門文章

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header

經得起原始碼資安弱點掃描的程式設計習慣培養(三)_7.Cross Site Scripting(XSS)_Stored XSS_Reflected XSS All Clients

(2021年度)駕訓學科筆試準備題庫歸納分析_法規是非題