我正在尝试使用openrowset函数在网络共享上查询和Excel电子表格,但没有成功。我收到以下错误:
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;DATABASE=\\server\Xdrive:\Spreadsheet.xls',
'Select * from [Sheet1$]')
服务器:消息7399,级别16,状态1,行1 OLE DB提供程序'Microsoft.Jet.OLEDB.4.0'报告错误。提供商未提供有关错误的任何信息 OLE DB错误跟踪[OLE / DB提供程序'Microsoft.Jet.OLEDB.4.0'IDBInitialize :: Initialize返回0x80004005:提供程序未提供有关错误的任何信息。]。
我搜索过该网站并尝试了不同的语法但没有成功。我已经读过该帐户可能无法访问网络共享。该流程在哪个帐户下运行?
答案 0 :(得分:0)
0x80004005看起来非常像Access Denied。
您可以在services.msc中查看SQL Server运行的帐户。本地帐户不能在本地计算机之外工作,如果要访问网络上的资源,域帐户是更好的选择。
例外是NetworkService account(在Windows 2003及更高版本上可用)。它是可以访问网络的本地帐户,在这种情况下,它充当计算机帐户(DomainName\MachineName$
)。不过我会推荐一个专门的域帐户。
答案 1 :(得分:0)
我会使用网络共享但不会映射驱动器,因为我一直认为他们正在为每个用户创建会话。
它不会导致访问错误,但您可能应该通过读取标题指定不跳过第一行工作表: