【发布时间】:2015-03-28 12:08:42
【问题描述】:
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE
GO
USE [master]
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
阅读 Excel
DECLARE @SQLconnect VARCHAR(8000)
SET @SQLconnect = 'SELECT * FROM OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',
''Excel 8.0;Database=D:\WAGES.xlsx;'',
''SELECT * FROM [Sheet2$]'')'
EXEC (@SQLconnect)
例外
消息 7399,第 16 层,状态 1,第 1 行
链接服务器“(null)”的 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”报告错误。提供商报告了意外的灾难性故障。消息 7303,第 16 级,状态 1,第 1 行
无法为链接服务器“(null)”初始化 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”的数据源对象。
有时会出错,有时会进入无限循环执行。
注意:在 SQL Server 2012 上安装 SQL Server 2008 R2 后出现此错误。
- 操作系统:Windows 7 32 位
- 已安装 SQL Server 2008 R2 和 SQL Server 2012
【问题讨论】:
-
您是否尝试过直接执行,而不是在动态 SQL 中?您使用动态 SQL 的任何原因?在 SQL Server 上是
D:\WAGES.xlsx吗? -
两种方法我都试过了。是的,D:\ 上的 Wages.xlsx 和同一台机器上的 SQL Server
标签: sql sql-server sql-server-2008-r2 sql-server-2012 openrowset