【发布时间】:2013-01-05 13:51:49
【问题描述】:
我正在运行以下查询来导入 csv 文件:
SELECT * FROM OPENROWSET('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=D:\Documents\;', 'SELECT * from file.csv') AS something
我收到此错误:
OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified".
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".
这是我尝试解决问题的方法,但都不够:
- MsSQL 和 IIS 可以访问相关文件夹和文件。他们还可以访问运行 SQL Server 的网络服务的临时文件夹。
- 我已使用 sp_configure 启用了即席分布式查询
- 我已通过将注册表项 DisallowAdhocAccess 设置为 0 来修复它
- 我已安装 Microsoft Access Database Engine 2010 Redistributable
系统是运行 SQL Server 2012 Express 的 Windows 2008 Server,但 SQL Server 2008 也出现了该问题。
在这一点上,任何随机的想法都值得赞赏:)。谢谢!
【问题讨论】:
-
您是否启用了 Ad Hoc DISTRIBUTED 查询?
-
确实如此。我已在我的帖子中添加了说明...
-
如果您尝试使用进程监视器查看,它甚至会尝试打开文件吗?如果是这样,这会产生任何错误吗?
标签: sql-server windows-server-2008