使用BULK INSERT查询的完美

时间:2013-04-07 00:27:51

标签: sql sql-server sql-server-2005

我使用以下MS SQL查询将包含逗号分隔值的文本文件导入DB:

BULK INSERT logs
FROM 'E:\Sample.txt'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)

不幸的是,我的CSV文本文件中的一个字段包含以下消息:“UDP端口问题(234,137)”,其中包含逗号。因此,DB将逗号之前的值作为一个字段,并将逗号后面的值插入下一个字段(这在逻辑上是不正确的)。结果,后一个字段的合法值在插入表中时被丢弃。

希望我的问题得到最好的解释。

任何解决此问题的解决方案并将整个存储:“UDP端口(234,137)中的问题”存入单个字段?

2 个答案:

答案 0 :(得分:0)

我更喜欢通过Microsoft日志解析器link运行我的CSV并将其转换为Tab Delimited。这样批量插入就可以完美地读取它。

这是关于使用日志解析器link的一个非常好的链接。创建命令以读取csv并输出tsv,然后使用xp_cmdshell调用它。

为您节省为各种文件创建格式文件的麻烦。

答案 1 :(得分:0)

您是否尝试过放置其他现场终结器?