【发布时间】:2014-11-19 00:40:50
【问题描述】:
我正在执行这个 openrowset 函数:
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=C:\Users\JCPABALAN\Desktop\Data Migration\ListOfDiscards.xlsx;HDR=YES',
'SELECT * FROM [Sheet1$]')
但它给了我以下错误
链接服务器“(null)”的 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”返回消息“Microsoft Access 数据库引擎找不到对象 'Sheet1$'。请确保该对象存在并且您拼写其名称和路径名正确。如果“Sheet1$”不是本地对象,请检查您的网络连接或联系服务器管理员。”。
消息 7350,第 16 级,状态 2,第 1 行
无法从 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”获取链接服务器“(null)”的列信息。
我已经将 Ad Hoc Distributed Queries 设置为 1 并安装了 Microsoft ACE 并执行了这行代码:
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
但还是不行。
【问题讨论】:
-
路径“C:\Users\JC...”是否与 SQL Server 在同一台计算机上? SQL Server 服务帐户是否有权访问它?
标签: sql-server sql-server-2008 tsql openrowset aceoledb