2013-01-15 100 views
0

我試圖將數據從Excel導入到SQL而不使用嚮導,因爲它是一個需要每週進行的過程,所以自動化是必須的。然而,當我運行下面的腳本,我得到一個錯誤信息:將數據從excel導入到SQL Server時的錯誤消息

腳本:

IF OBJECT_ID('TEST Weekly Sales D') IS NOT NULL 
DROP TABLE [TEST Weekly Sales D] 

SELECT * 
INTO [TEST Weekly Sales D] 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
    'Excel 12.0;Database=C:\.....\Weekly Sales D.xlsx', 
    ['SHEET1$']) 
GO 

錯誤消息:

OLE DB提供程序「Microsoft.ACE.OLEDB。 12.0「爲鏈接的服務器」(空)「 返回的消息」未指定的錯誤「。消息7303,級別16,狀態1, 行5無法初始化鏈接服務器「(null)」的OLE DB提供程序的數據源對象「Microsoft.ACE.OLEDB.12.0」 。

服務器沒有excel,但我被告知這不是問題。我安裝了ACE OLEDB驅動程序,但似乎間歇性地工作。

有人請指出我哪裏出錯了嗎?

回答

2

首先檢查ACE Studio是否出現在Management Studio中的ServerObjects> Linked Servers> Providers樹下。

然後運行以下命令(分別運行它們以注意是否顯示「從0更改爲1」信息)。

要啓用OPENROWSET:

sp_configure 'show advanced options' 
GO 
RECONFIGURE 
GO 

sp_configure 'Ad Hoc Distributed Queries', 1 
GO 
RECONFIGURE 
GO 

配置ACE驅動程序:

EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1 
GO 
EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1 
GO 

此外,驅動器的版本是否安裝,並veriosn的SQL Server,你運行? x86還是64?

Regards

相關問題