我正在运行以下查询来导入 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 启用了 Ad Hoc 分布式查询
- 我已通过将注册表项 DisallowAdhocAccess 设置为 0 来修复它
- 我已安装 Microsoft Access Database Engine 2010 Redistributable
该系统是运行 SQL Server 2012 Express 的 Windows 2008 Server,但 SQL Server 2008 也出现了该问题。
在这一点上,任何随机的想法都会受到赞赏:)。谢谢!