Sql server SQL Server查询昨天工作的xls文件(我发誓),现在拒绝。0.o

Sql server SQL Server查询昨天工作的xls文件(我发誓),现在拒绝。0.o,sql-server,Sql Server,下面的select语句用于在64位SQL Server 2008 R2上正确查询Excel电子表格,现在为我提供了一个错误 SELECT MPNCode, Supplier, Stock , Price, Manufacturer, [Description] FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0 Xml;Database=C:\inetpub\wwwroot\nCompass\Produc

下面的select语句用于在64位SQL Server 2008 R2上正确查询Excel电子表格,现在为我提供了一个错误

SELECT 
     MPNCode, Supplier, Stock , Price, Manufacturer, [Description]
FROM 
     OPENROWSET('Microsoft.ACE.OLEDB.12.0',
    'Excel 12.0 Xml;Database=C:\inetpub\wwwroot\nCompass\Products\Import\SupplierProducts.xls;HDR=YES',
                'SELECT * FROM [Sheet1$]') WHERE MPNCode IS NOT NULL
我得到的错误是

链接的OLE DB提供程序“Microsoft.ACE.OLEDB.12.0” 服务器“(空)”返回消息 “未指定的错误”。
味精7303,16级,状态1,第1行 无法初始化OLE DB提供程序的数据源对象 链接的“Microsoft.ACE.OLEDB.12.0” 服务器“(空)”

我试着重新启动一切,然后用谷歌搜索到了它的死角——不知怎么的,发生了一些事情,阻止了它的工作

文件路径/文件名正确,因为当我更改路径时,会收到不同的错误消息

通过surface manager启用了临时连接—在此之后,我被问题所困扰


非常感谢您的帮助。

链接的电子表格是否已在桌面上打开?如果在同一文件夹中创建新工作表并尝试打开它,会发生什么情况?

我认为SQL Server需要访问临时文件夹来复制或创建一些文件。 如果该文件夹不存在,或者SQL服务帐户没有足够的权限访问这些文件夹,则会出现异常


在服务器上运行,然后再次执行查询。您可以看到正在发生的事情以及SQL Server希望访问的位置。

我以前一直在努力解决这个问题。这些错误消息完全没有帮助。您是否在32位服务器上?我似乎记得以前需要增加memtoleave面积。此外,如果您使用Procmon,您可以获得任何见解吗?读取文件能走多远?它是一个64位服务器。让我完全困惑的是,最终我创建了一个dtsx包,我可以从我的应用程序中执行它。谢谢你的想法,如果我有更多的时间解决这个问题,我可能会尝试procmon。我会尝试权限-尝试将文件保存在C的根目录下的文件夹中。我也有同样的问题。即使将文件名更改为错误的文件名,我也总是会遇到此错误@AmirPournasserian dtsx是唯一的方法,我认为无论电子表格是打开还是关闭,错误都是一样的。在同一文件夹中创建新工作表并使用这些工作表也没有什么乐趣。。耸肩我发现一个dtsx软件包可以很好地解决这个问题,所以我们将使用它。