我需要通过脚本将具有不同列数的多个文件导入SQL Server。我正在尝试为此使用OPENROWSET。我已经做了以下工作。
在客户端X64 PC上安装的驱动程序。
执行以下命令。
EXEC sp_configure 'show advanced options', 1;
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
当尝试通过以下方式读取文件时
SELECT * from OpenRowset('MSDASQL','Driver={Microsoft Text Driver (*.txt;*.csv)};DefaultDir=c:\Delme\;','select * from input.csv' )
我遇到以下错误。
消息7399,级别16,状态1,第17行OLE DB提供程序“ MSDASQL”用于 链接服务器“(null)”报告错误。提供者没有给 有关错误的任何信息。 Msg 7303,第16级,状态1,第17行 无法初始化OLE DB提供程序“ MSDASQL”的数据源对象 链接服务器“(null)”。
答案 0 :(得分:0)
签入ODBC Data Source Administrator,以确保驱动程序名称正确写入了OpenRowset调用中。如果您使用的是Microsoft文本驱动程序,则名称实际上可能是
Microsoft Text Driver (*.txt; *.csv)
请注意,此名称在分号后有一个空格。
我个人没有Microsoft文本驱动程序-我具有Microsoft Access文本驱动程序,必须将其指定为
Microsoft Access Text Driver (*.txt, *.csv)