在64位版本的Windows中運行OPENROWSET。
1-安裝AccessDatabaseEngine_x64.exe(需要重新啓動)。
2-如果您使用的是SQL Management Studio,請以管理員身份運行Management Studio。如果您沒有以管理員帳戶身份運行它,則會出現此錯誤(無法初始化鏈接服務器的OLE DB提供程序「MICROSOFT.ACE.OLEDB.12.0」的數據源對象「(null)」。
3 - 。運行此命令配置數據庫
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE with override;
GO
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE with override;
GO
EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1
GO
EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1
GO
4-不要使用 'SELECT * FROM表Sheet1 $' 在OPENROWSET函數試試這個代碼
select * from OPENROWSET('MICROSOFT.ACE.OLEDB.12.0', 'Excel 12.0;HDR=YES;DATABASE=D:\test.xlsx', sheet1$)
如果你仍然有(32位)錯誤,請嘗試重新啓動您的SQL服務並檢查您的C:\ Windows \ Temp並查看您是否有權訪問此d是否是irectory。
我安裝了Microsoft Access數據庫引擎2010可再發行組件之後,我更改了上面的查詢,並且它對我來說工作正常。下面是已修改的查詢。 SELECT * FROM OPENROWSET('MICROSOFT.ACE.OLEDB.12.0','Excel 12.0; HDR = YES; DATABASE = E:\ 01112012.xls',sheet1 $) – Simhadri 2012-01-10 22:06:34