方法一:OPENROWSET 直接寫入 Excel 檔案
- 預先建立空白 Excel 檔案,例如
C:\temp.xls,並在第一個工作表(預設 Sheet1)建立標題列。
- 執行以下語句將查詢結果寫入:
INSERT INTO OPENROWSET(
'Microsoft.Jet.OLEDB.4.0',
'Excel 5.0;HDR=YES;DATABASE=C:\temp.xls',
'Sheet1$'
)
SELECT * FROM YourTable;
方法二:OPENROWSET 讀取 Excel 資料
SELECT * FROM OPENROWSET(
'Microsoft.Jet.OLEDB.4.0',
'Excel 5.0;HDR=YES;DATABASE=C:\temp.xls',
'Sheet1$'
);
注意事項
- 需啟用
Ad Hoc Distributed Queries 伺服器選項:EXEC sp_configure 'show advanced options',1; RECONFIGURE; EXEC sp_configure 'Ad Hoc Distributed Queries',1; RECONFIGURE;
- Excel 檔案不能被其他程式獨佔開啟。
- 64 位元環境需安裝 64 位元 ACE OLEDB Provider(
Microsoft.ACE.OLEDB.12.0)並將連接字串對應修改。
- 大量資料建議使用 SSIS 或
bcp 搭配格式檔,效能更佳。