sql-server - 使用 BULK INSERT 命令将 CSV 文件导入 SQL Server 表

标签 sql-server insert bulk

我有一个 CSV 文件,其中有几个数据列。

CSV 文件看起来像

field1: Test1
field2: Test2
field3: Test3, Test4, Test5

在这种情况下,我可以使用哪个库作为字段终止符我的意思是如果我使用此查询将 CSV 文件插入 shopifyitem 表,因为您假设数据字段插入不正确

BULK INSERT shopifyitem
FROM 'c:\test.csv'
WITH
(
   FIELDTERMINATOR = ',',
   ROWTERMINATOR = '\n'
)

那么我可以使用哪个字段终止符

先谢谢你....

最佳答案

我认为如果不进行某种类型的预处理,您将无法导入该格式。正如 Aaron 所暗示的,这不是标准的 CSV。

如果您无法重新格式化文件,有几种方法可以将数据转换为可导入的格式:

http://www.timmitchell.net/post/2013/01/14/ragged-flat-file-processing-in-ssis/

http://www.rad.pasfu.com/index.php?/archives/38-Script-Component-as-Source-SSIS.html

http://msdn.microsoft.com/en-us/library/ms136060.aspx (向下滚动到“平面文件源示例”)

这些都是利用 .NET 完成大部分工作的 SSIS 解决方案。我更喜欢 SSIS,因为它内置了生产力工具。它可以使用任何文本处理器来完成,例如控制台应用程序或 powershell 脚本(如果您真的有时间的话)。

我更喜欢带有流阅读器的脚本组件源,但 Tim Mitchell 有一个有趣的选择。

关于sql-server - 使用 BULK INSERT 命令将 CSV 文件导入 SQL Server 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14594072/

相关文章:

sql - 为什么 SQL 将精确的日期时间更改一格

mysql - 在 MySql Workbench 中插入日期

mysql查询批量插入导致序列间隙

sql-server - 检查所有存储过程的语法?

sql - 如何检查谁持有我想授予的锁?

带有where子句的mysql插入命令

python - 如何使用 elasticsearch.helpers.streaming_bulk

mysql - 根据对另一个表的选择结果更新表

sql - Sequelize 非主键上的连接表

python - 创建 BST : python 的最佳实践