2016-11-04 127 views
2

我想從一個EXCEL文件導入數據到SQL SERVER。當我運行此查詢從Excel文件導入數據到SQL Server

SELECT * INTO EXCEL_IMPORT 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0; Database=C:\Users\af\Desktop\Reports\Jan_2016_Ships.xlsx; HDR=YES; IMEX=1', 
'SELECT * FROM [Sheet1$]'); 

我得到這個錯誤

The OLE DB provider "Microsoft.ACE.OLEDB.12.0" has not been registered

所以我需要安裝此驅動程序,但做了一些搜索後,我發現這一點:

安裝Microsoft.ACE.OLEDB.12.0司機

導入Excel文件2007-2016到SQL Server微軟應安裝驅動程序.ACE.OLEDB.12.0 。

下載的驅動程序使用下面的鏈接:

Microsoft Access數據庫引擎2010可再發行

不要擔心在名爲「訪問」。

警告!如果Microsoft Office 2007-2016 x86已安裝,則無法安裝x64驅動程序!

因此,無法將Excel數據導入到SQL Server x64中使用 OPENROWSET/OPENDATASOURCE函數在具有Microsoft Office的計算機上 x86!

所以我無法安裝此驅動程序,因爲我有SQL SERVER x64和Microsoft Office x86。我不想使用簡單的導入嚮導,因爲我有很多表,我需要檢查列的數據類型......在我的情況下,這將是非常耗時的。

我相信應該有一個解決方案在SQL SERVER x64和Microsoft Office x86上運行我的查詢。

有什麼建議嗎?非常感謝您

+0

轉換文件Jan_2016_Ships.xlsx到Jan_2016_Ships.xls然後檢查 – Mansoor

+0

相同的錯誤之前 – JuniorDev

回答

0

如果你運行它只有一次,你可能可以運行在SSIS包查詢並改變溶液爲32位模式(右鍵單擊該解決方案,性能,調試,run64bitRuntime = FALSE)

0

微軟的excel是否安裝在你的系統中? 這可能會解決您的問題。

您還可以通過SQL管理工作室手動導入表。

右鍵單擊數據庫>任務>導入數據

+0

感謝您的建議,但我正在尋找一個解決方案是如何直接從運行查詢 – JuniorDev

+0

從此鏈接獲取驅動程序。安裝它並再次嘗試查詢。 https://www.microsoft.com/en-us/download/details.aspx?id=13255 –

+0

感謝您的建議,但我收到同樣的錯誤,當我嘗試安裝它「無法安裝64位版本的MS數據庫引擎,因爲我有32位辦公產品「 – JuniorDev