1

我在 Windows 7 64 位上安装了 Office 2010 64 位。Windows 7 上也安装了 SQL Server 2008。

然后我尝试使用Microsoft.ACE.OLEDB.12.0T-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,并得到与上述相同的错误。

4

2 回答 2

3

想办法:以 sa 身份登录解决了这个问题。

于 2013-03-26T16:35:39.710 回答
1

尝试将您的 Excel 文件放在您的用户帐户无需管理员权限即可访问的位置。

例如,您的用户文件夹将是更好的选择。在没有管理员权限的情况下运行时,Windows 将限制对这些类型的文件夹的访问。

于 2013-03-25T15:23:50.710 回答