我在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,并得到与上面相同的错误。
答案 0 :(得分:3)
弄清楚:以sa登录解决此问题。
答案 1 :(得分:0)
尝试将Excel文件放在用户帐户有权访问的位置,而无需管理员权限。
例如,您的用户文件夹是更好的选择。在没有管理员权限的情况下运行时,Windows将限制对这些类型文件夹的访问。