-- 建立目標表
CREATE TABLE CSVTable (Name NVARCHAR(MAX), Email NVARCHAR(MAX), Area NVARCHAR(MAX)); GO
-- CSV 內容 (D:\csv.txt)
-- Peter, peter@example.com, Taipei
-- Mary, mary@example.com, Taichung
BULK INSERT CSVTable FROM 'D:\csv.txt'
WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n');
SELECT * FROM CSVTable; GO

CSV:Peter, "peter@example.com", Taipei → 匯入後 Email 含雙引號。
解法:**先匯入暫存表 → 再清洗移除雙引號轉入正式表**。

CSV:"Peter","peter@example.com","Taipei"
解法:修改 BULK INSERT 格式檔或暫存表清洗,**格式檔指定引號字元**。

CSV 有 5 欄,表只有 3 欄 → 多餘欄位會被塞入最後一欄。
解法:目標表**額外建立暫存欄位**接收多餘資料,清洗後捨棄。

NVARCHAR(MAX),欄位數 ≥ CSV 最大欄位數。BULK INSERT #Tmp FROM 'path' WITH (FIELDTERMINATOR=',', ROWTERMINATOR='\n', FIRSTROW=2) (跳過標題列)。REPLACE、SUBSTRING 等清洗暫存表資料。INSERT INTO 正式表 SELECT 清洗後欄位 FROM #Tmp。