在開發、測試或資料遷移場景,常需在 SSMS 查詢結果與 Excel 之間快速互轉資料。無需匯入匯出精靈,善用 SSMS 內建的「複製含標題」與「編輯模式貼上」即可秒級完成。
SELECT * FROM TableName 或任意 SELECT 陳述式。IDENTITY 自增欄位,請勿複製該欄,讓資料庫自動產生。| 問題 | 原因 | 解決方式 |
|---|---|---|
| 貼上後資料錯位 | Excel 欄序與資料表不一致 | 調整 Excel 欄位順序或在 SELECT 中指定欄位順序 |
| 自增欄位報錯/重複 | 複製包含 IDENTITY 欄 | Excel 複製範圍排除自增欄,或暫時 SET IDENTITY_INSERT ON |
| 資料型別轉換失敗 | 字串寫入數值/日期欄 | Excel 先設定儲存格格式,或用 CAST/CONVERT 預處理 |
| 大量資料貼上緩慢/逾時 | SSMS 編輯模式非大量載入優化 | 超過 1 萬列建議改用 BCP、BULK INSERT 或 SSIS |
bcp DB.dbo.Table OUT file.csv -c -t, -T 命令列高效匯出。SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=D:\data.xlsx','SELECT * FROM [Sheet1$]') 直接查詢 Excel。針對臨時、少量(<5,000 列)、結構單純的資料互轉,SSMS 複製貼上法最快且零設定;超過規模請改用專業 ETL 工具。