-- 查詢並直接插入目標表
SELECT * INTO TargetTable
FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source="C:\Data\Source.xls";User ID=Admin;Password=;Extended Properties="Excel 8.0;HDR=YES;IMEX=1"'
)...[Sheet1$];
關鍵參數:
HDR=YES:第一列為欄位名。IMEX=1:混合型別欄位以文字模式讀取,避免數值截斷。$ 並用方括號括起:[Sheet1$]。Microsoft.ACE.OLEDB.12.0 Provider 並將 Extended Properties 設為 "Excel 12.0;HDR=YES;IMEX=1"。SELECT * INTO TargetTable
FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source="C:\Data\Source.mdb";User ID=Admin;Password='
)...SourceTableName;
-- .accdb (Access 2007+)
SELECT * INTO TargetTable
FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0',
'Data Source="C:\Data\Source.accdb";'
)...SourceTableName;
-- 建立連結伺服器指向 Excel
EXEC sp_addlinkedserver
@server = 'LINK_EXCEL',
@srvproduct = '',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@datasrc = 'C:\Data\Source.xls',
@provstr = 'Extended Properties="Excel 8.0;HDR=YES;IMEX=1"';
-- 查詢
SELECT * FROM LINK_EXCEL...[Sheet1$];
-- 刪除連結伺服器
EXEC sp_dropserver 'LINK_EXCEL', 'droplogins';
Ad Hoc Distributed Queries:EXEC sp_configure 'Ad Hoc Distributed Queries', 1; RECONFIGURE;