我正在运行以下查询来导入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)".
这是我为解决这个问题所做的工作,但这两方面都不够:
该系统是运行SQL Server 2012 Express的Windows 2008 Server,但该问题也已与SQL Server 2008一起复制。
此时任何随机的想法都值得赞赏:)。谢谢!
答案 0 :(得分:1)
答案结果很简单,但非常缺乏文档:MSDASQL驱动程序与64位SQL Server安装无法很好地协同工作。
在this thread中有更多相关信息,但就我的目的而言,“降级”到32位实例是一个充分的解决方案。
答案 1 :(得分:1)
它有效。只需确保驱动程序的名称是完全正确的,如控制面板ODBC数据源(64位)中所示。在我的情况下,正确的名称是"' Driver = {Microsoft Access Text Driver(* .txt,* .csv)}",我在我的机器中使用Windows 8.1 64位。
此致
MarianoC。