2013-01-15 99 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

相关问题