2012-01-10 163 views
2

我想在安装在Windows 2008 64位机器上的SQL Server 2008 R2上使用Openrowset。当我执行下面的查询时,出现如下错误请帮助我。在Windows 2008 64位机器上安装的SQL Server 2008 R2上的Openrowset

SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=E:\01112012.xls;','SELECT * FROM [Sheet1$]') 

错误:

消息7403,级别16,状态1,行 OLE DB提供程序 “Microsoft.Jet.OLEDB.4.0” 尚未注册。

+1

我安装了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

回答

3

您是否安装: - >Microsoft Access Database Engine 2010 Redistributable

  • 此下载将安装一套有利于现有的Microsoft Office之间的数据传输组件的文件,如Microsoft Office Access 2010中(* .MDB和.ACCDB )文件和Microsoft Office Excel 2010( .xls,* .xlsx和* .xlsb)文件复制到其他数据源(如Microsoft SQL Server)。与现有文本文件的连接也受支持。 ODBC和OLEDB驱动程序安装在应用程序开发人员用于开发与Office文件格式连接的应用程序。
+0

是的,我确实在机器上安装了该软件。 – Simhadri 2012-01-10 22:01:03

+0

我安装了这个之后,我改变了上面的查询,它对我来说工作得很好。以下是修改后的查询。 SELECT * FROM OPENROWSET( 'MICROSOFT.ACE.OLEDB.12.0', '的Excel 12.0; HDR = YES; DATABASE = E:\ 01112012.xls',工作表Sheet $) – Simhadri 2012-01-10 22:04:48

+0

由于一吨@ KD7 – Simhadri 2012-01-10 22:13:46

0

在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。

相关问题