我想從Excel導入數據到SQL 服務器使用查詢,而不是使用嚮導。我想這個查詢:OLE DB提供程序'Microsoft.Jet.OLEDB.4.0'不能用於分佈式查詢
Select * INTO g FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 12.0;Database=D:\new.xlsx;HDR=YES', 'SELECT * FROM [newSheet$]');
但是,我得到這個錯誤:
Msg 7308, Level 16, State 1, Line 1
OLE DB provider 'Microsoft.Jet.OLEDB.4.0' cannot be used for distributed queries because the provider is configured to run in single-threaded apartment mode.
所以我搜索谷歌,和我一樣的答案:即使重新配置之後
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO
向我展示了同樣的錯誤...
這可能不是一個解決辦法,但你似乎有你的連接字符串中的不匹配。對於帶'Excel 12.0'的'.xlsx'文件,你應該使用'Microsoft.ACE.OLEDB.12.0'。 'Microsoft.Jet.OLEDB.4.0'將用'Excel 8.0'指定,但只支持Excel 97-2003中的'.xls'文件。 – agentnega
@agentnega我試圖將Excel文件更改爲.xls格式,之後也得到相同的錯誤 –
糟糕這是一個http://stackoverflow.com/questions/16605371/error-in-query-when-trying-to- import-excel-file-to-sql?rq = 1這也是http://stackoverflow.com/questions/9687631/openrowset-with-excel-file的副本。查看這些問題以獲取可能的答案 – agentnega