sql server批量插入带有逗号的数据的csv

标签 sql sql-server csv bulkinsert

下面是 csv 的示例行

012,12/11/2013,"<555523051548>KRISHNA  KUMAR  ASHOKU,AR",<10-12-2013>,555523051548,12/11/2013,"13,012.55",

你可以看到克里希纳·库马尔·阿索库,AR 作为单个字段,但由于逗号,它将 KRISHNA KUMAR ASHOKU 和 AR 视为两个不同的字段,尽管它们用 "​​ 括起来,但仍然没有运气

我试过
BULK
INSERT tbl
FROM 'd:\1.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
FIRSTROW=2
)
GO

有什么解决办法吗?

最佳答案

答案是:你不能那样做。见 http://technet.microsoft.com/en-us/library/ms188365.aspx .

"从 CSV 文件导入数据

SQL Server 大容量导入操作不支持逗号分隔值 (CSV) 文件。但是,在某些情况下,CSV 文件可用作将数据批量导入 SQL Server 的数据文件。有关从 CSV 数据文件导入数据的要求的信息,请参阅为批量导出或导入准备数据 (SQL Server)。”

一般的解决方案是您必须将您的 CSV 文件转换为可以成功导入的文件。您可以通过多种方式执行此操作,例如通过使用不同的分隔符(例如 TAB)创建文件或使用能够理解 CSV 文件(例如 Excel 或许多脚本语言)的工具导入您的表格并使用唯一的分隔符(例如 TAB),然后您可以从中批量插入。

关于sql server批量插入带有逗号的数据的csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21226107/

相关文章:

由于权限问题,SQL Server 无法在数据库中创建表

sql - T-SQL try ... catch 和多个批处理(2 begin...end,if...else)

SQL Server : check if table column exists and remove rows

c# - Entity Framework 中的代码首先设置列以在 sql server 中键入 datetime2

python - 将一个文本文件文件夹合并为一个 CSV,每个内容都在一个单元格中

SQL查询: how to aggregate on part of date

asp.net - 本地数据库文件的连接字符串不起作用

.net - sp 执行时阻止读取行

java - 读取 CSV 文件并将其连接到数据库中

php - 在php中跳过n行csv文件