当前位置: 首页 > 面试题库 >

SQL Server批量插入CSV与逗号数据

邹华皓
2023-03-14
问题内容

下面是csv的示例行

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

您可以将 KRISHNA KUMAR ASHOKU,AR 视为单个字段,但是由于逗号,它会将KRISHNA KUMAR
ASHOKU和AR视为两个不同的字段,尽管它们用“”括起来,但还是没有运气

我试过了

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

有什么解决方案吗?


问题答案:

答案是:您不能那样做。请参阅http://technet.microsoft.com/zh-
cn/library/ms188365.aspx

“从CSV文件导入数据

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

通用解决方案是您必须将CSV文件转换为可以成功导入的文件。您可以通过多种方式执行此操作,例如通过使用其他定界符(例如TAB)创建文件,或者使用了解CSV文件的工具(例如Excel或多种html" target="_blank">脚本语言)导入表格并以唯一的方式导出分隔符(例如TAB),然后可以从中分隔符。



 类似资料:
  • 问题内容: 我有一些要导入mySQL的CSV数据文件。我想在shell脚本中进行插入,以便可以将其自动化。但是,我对在脚本中使用明文形式输入用户名和密码感到有些厌倦 我有以下问题: 我对脚本中明文中的uname / pwd的想法感到不满意(反正还是这样,还是我太偏执)?也许我可以为插入表设置仅具有INSERT特权的用户? 数据库表(导入原始数据的数据库表)具有基于表列的唯一键。我尝试导入的数据中也

  • 本文向大家介绍C#批量插入数据到Sqlserver中的三种方式,包括了C#批量插入数据到Sqlserver中的三种方式的使用技巧和注意事项,需要的朋友参考一下 本篇,我将来讲解一下在Sqlserver中批量插入数据。 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引。GUID必然是比自增长要快的,因为你生成一个GUID算法所花的时间肯定比你从数据表

  • 本文向大家介绍详解C#批量插入数据到Sqlserver中的四种方式,包括了详解C#批量插入数据到Sqlserver中的四种方式的使用技巧和注意事项,需要的朋友参考一下 本篇,我将来讲解一下在Sqlserver中批量插入数据。 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引。GUID必然是比自增长要快的,因为你生成一个GUID算法所花的时间肯定比你

  • 问题内容: 我试图切换一些硬编码的查询以使用参数化输入,但是遇到一个问题:如何格式化参数化批量插入的输入? 当前,代码如下所示: 一个可能的解决方案(从如何将数组插入到一个带有PHP和PDO的单个MySQL Prepared语句中 修改而来)似乎是: 有没有更好的方法来完成带有参数化查询的批量插入? 问题答案: 好吧,您有三个选择。 一次构建-执行多次。基本上,您只需为一行准备一次插入,然后循环执

  • 我将一个NetLogo列表从NetLogo传递到Java(到一个扩展),然后再次将其发送回NetLogo,在那里我想将其用作另一个过程的参数。但当我将其发送回NetLogo时,logolost的Java表示似乎已经改变了它,使其包含逗号,即。 变成了,当我把它传下去时,NetLogo会抱怨。(它说它期望一个常数。) 从ExtensionCode中的参数检索列表时,我使用args[0]。getLis

  • 我正在写一个数据挖掘程序,可以批量插入用户数据。 当前SQL只是一个普通的批量插入: 如果发生冲突,如何进行更新?我试过: 但它抛出