2017-06-22 22 views
0

我花了最近幾個小時嘗試使用OpenRowSet或OpenDataSource將Excel文件的內容導入到SQL中,但得到相同的錯誤。OPENROWSET和OPENDATASOURCE

我目前使用SQL Server 2014 X64時,Excel 2016 64位的Windows Server 2008 R2 64位

我使用的代碼是

SELECT * FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0', 
    'Data Source=S:\Refunds\file.xlsx;Extended Properties=Excel 12.0')...[test] 

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
    'Excel 12.0;Database=S:\Refunds\file.xlsx', [test]) 

而我得到的錯誤消息是: -

Msg 7314,Level 16,State 1,Line 39 鏈接服務器「(null)」的OLE DB提供程序「Microsoft.ACE.OLEDB.12.0」不包含表「test」。該表或者不存在,或者當前用戶對該表沒有權限。

這裏的假設是,我從S打開files.xlsx文件:\驅動器,並在尋找一個名爲test的標籤

我試圖改變的文件路徑爲完整的UNC路徑,並試圖移動該文件的C驅動器以及但仍然得到相同的消息,任何人都可以指出我在正確的方向嗎?

感謝

回答

0

我覺得應該是:

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
    'Excel 12.0;Database=S:\Refunds\file.xlsx', [test$]) 
+0

嗨安東尼,我試過的建議,它並似乎做的事情,以及我沒有得到錯誤信息。我試圖將內容加載到一個表中,它只是永遠運行,Excel文件中只有402行,所以這應該立即完成,任何其他的想法? – PJD

+0

你可以嘗試SELECT TOP 1000 FROM [test $]而不是[test $] - 抓住一點吸管。也許Excel表格實際上是空白行。 –