导入在SQL Server中没有txt或csv扩展名的CSV文件

时间:2014-07-17 14:07:38

标签: sql csv openrowset

我的目标是让我想通过 OPENROWSET 样式查询导入一个文件(它来自另一个系统)。

Tee查询看起来像这样:

select [NoName]  from openrowset('MSDASQL'
           ,'Driver={Microsoft Access Text Driver (*.txt, *.csv)};
                DefaultDir=c:\filedir'
           ,'select * from "file.lst"')

如果我将文件设为 .csv ,则可以正常使用。但是,如果它没有CSV或TXT扩展名,则会抛出以下错误,似乎无法找到解决方案。

OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Text Driver] Cannot update. Database or object is read-only.".
Msg 7350, Level 16, State 2, Line 1
Cannot get the column information from OLE DB provider "MSDASQL" for linked server "(null)".

另外,(虽然我可以在其他地方找到它),我需要让第一行'BLANK',这样它就不会错过数据(没有标题行)。有没有办法在没有 BULK 的情况下使用 OPENROWSET 基本上将所有行都包含为数据?

1 个答案:

答案 0 :(得分:0)

这是security feature,只能在注册表中禁用。默认情况下,只允许使用以下文件扩展名:txt, csv, tab, asc, htm, html

访问97:

HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\3.5\Engines\Text\DisabledExtensions

访问2000:

HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engines\Text\DisabledExtensions