將 Excel (.xls) 資料導入 SQL Server 2000,最直觀的方式是使用企業管理器內建的 DTS 匯入/匯出精靈。本文提供 11 步驟完整操作流程,並針對常見錯誤(欄位順序不符、資料型別衝突)給出預防建議。
sa,目標資料庫ORDER BY 欄位(可略過)| 問題現象 | 原因 | 解決辦法 |
|---|---|---|
| 匯入成功但資料對錯欄 | 查詢建立器欄位順序 ≠ 目標表結構順序 | 步驟 5 嚴格對齊順序;或在 Excel 端調整欄位順序 |
| 數值欄位匯入變 NULL | Excel 儲存格含非數字字元(如空格、逗號) | Excel 端預先清洗:TRIM、SUBSTITUTE、設定儲存格格式 |
| 日期欄位格式錯誤 | Excel 日期序列值與 SQL Server 日期格式不符 | 查詢中使用 CONVERT 或匯入暫存表再轉型 |
| 長文字截斷 | 目標欄位長度 < Excel 實際內容長度 | 擴大目標欄位(VARCHAR(MAX)/TEXT)或預先截斷 |
精靈最後一步可選「另存為 DTS 套件」,後續可:
dtsrun /S server /N "PackageName" /E 呼叫DTS.Package 物件模型動態修改來源/目的地路徑SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=path\file.xlsx;HDR=YES', 'SELECT * FROM [Sheet1$]')SELECT * INTO #tmp FROM OPENROWSET(...) 驗證資料樣貌NVARCHAR(MAX))接收原始資料,再用 T-SQL 清洗轉型寫入正式表BULK INSERT 或 bcp,效能優於 DTS