0

我正在尝试从磁盘上的 Excel 文件导入数据,C:但是当我执行查询时

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

4

1 回答 1

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$]')
于 2013-10-23T17:24:56.460 回答