无法为链接服务器初始化OLE DB提供程序"MSDASQL"的数据源对象"(null)"

Ste*_*McD 11 sql-server-2005 msdasql openrowset

有一个有趣的问题.我正在通过Sql2005中的OpenRowset从服务器上的excel文件中读取.我已经多次运行查询而没有任何问题.我刚刚出去快速开会,突然间我收到错误"无法初始化OLE DB提供程序的数据源对象"MSDASQL"for linked server"(null)""

我确保文件没有在服务器上使用,甚至删除它们并将它们重新复制到服务器上,但我仍然得到同样的错误.

更新:如果我从不同的openrowsets加入两个选择,这似乎只会发生.如果我单独运行查询,他们仍然可以正常工作.我之前没有任何问题就完成了加入.想法?

小智 19

出现此问题的原因是运行SQL Server服务的用户的Temp文件夹无法在运行查询的凭据下访问.尝试以最小限制设置此临时文件夹的安全性.每次运行openrowset查询时创建的dsn都可以在没有任何凭据冲突的情况下重新创建.这对我没有任何重启要求.

  • 我在哪里可以找到这个Temp文件夹? (3认同)
  • 对于我们的特定配置 - Windows Server 2008 R2,SQL Server 2008 R2 - 我们需要与域用户共享的特定TEMP文件夹是:`C:\ Users\<SQL Server服务帐户名>\AppData\Local\Temp` (3认同)

Ste*_*McD 5

我们最终重新启动数据库服务器,似乎解决了这个问题.也许文件以某种方式被锁定.我们永远不会确切知道