2013-10-23 63 views
0

我试图导入我的磁盘C:从Excel数据文件,但是当我执行查询错误Importe的Excel与OPENROWSET一起

SELECT * 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0 Xml;HDR=YES;Database=C:\Hola.xlsx', 'SELECT * FROM [Ripley$]') 

我得到这个错误

消息7308,级别16,状态1行1
OLE DB提供程序'Microsoft.ACE.OLEDB.12.0'不能用于分布式查询,因为提供程序配置为以单线程单元模式运行

我想这

EXEC sp_configure 'show advanced options', 1; 
RECONFIGURE; 
GO 

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

,但它不工作。有人可以帮助我吗?

我使用SQL Server 2008 R2和Office 2010

+0

什么是您正在使用的查询?使用此查询 SELECT * FROM OPENROWSET( 'Microsoft.ACE.OLEDB.12.0', –

+0

IM '的Excel 12.0的Xml; HDR = YES;数据库= C:\ Hola.xlsx', “SELECT * FROM [里普利$]') – Ryuzaki

回答

0

不需要连接字符串内的SELECT声明,你可以将其删除:

SELECT * 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0 Xml;HDR=YES;Database=C:\Hola.xlsx', [Ripley$]') 

你也可能不需要Xml部分(但我不确定是否会导致错误):

SELECT * 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=YES;Database=C:\Hola.xlsx', [Ripley$]') 
+0

我现在看得很好现在我有其他问题,我正在寻找,我发现这个http://www.maxxxie.net/2012/07/01/the-joys-of-importing-excel-data- into-sql-2008-r2 /在那个url中,我需要安装微软访问服务来正确执行我的查询。我跟我的老板谈过这件事,但他不想安装它,我还有其他方法可以解决这个问题? – Ryuzaki

+0

不是我所知,您需要安装服务并具有管理员权限才能使用此功能。最好的选择是通过SSMS中的导入/导出向导导入excel文件,或者使用SSIS来处理导入。 –

+0

好的,谢谢你的帮助,我安装了所有工作良好 – Ryuzaki