【发布时间】:2013-03-15 02:24:25
【问题描述】:
我在 Windows 7 64 位上安装了 Office 2010 64 位。 Windows 7 上也安装了 SQL Server 2008。
然后我尝试使用Microsoft.ACE.OLEDB.12.0 通过 T-SQL 访问 excel 文件中的数据。
我在 SQL Server Mgmt Studio 中使用以下类型的查询尝试 T-SQL:
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\Temp\book1.xlsx;', 'SELECT * FROM [Sheet1$]')
如果我使用“以管理员身份运行”启动 SQL Server Mgmt Studio,那就没问题了。我可以从/向 Excel 文件访问/插入数据。
如果我直接启动 Mgmt Studio(使用我的 AD 帐户),我会收到如下错误:
链接服务器“(null)”的 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”返回消息“未指定的错误”。
消息 7303,第 16 级,状态 1,第 1 行
无法为链接服务器“(null)”初始化 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”的数据源对象。
但实际上,我的帐户也是管理员帐户(它在本地管理员组和 AD 管理员组中)。
因为我需要在代码中运行像OpenRowSet 这样的T-SQL,不知道如何解决这个问题。
在这种情况下看起来像 OpenRowSet,只有本地管理员可以运行 MSSM。
我尝试从另一台计算机运行 MSSM,并得到与上述相同的错误。
【问题讨论】:
标签: sql-server-2008 tsql oledb openrowset