我在 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,并得到与上述相同的错误。