【问题标题】:Removing quote-qualifiers when bulk copying data via bulk insert通过批量插入批量复制数据时删除引号限定符
【发布时间】:2012-03-16 02:15:07
【问题描述】:

我正在使用批量插入和格式文件将大型文本文件导入数据库。一些文件是 csv,其值有时是双引号限定的,并且这些引号正在进入导入的表中。

有没有办法使用批量插入来告诉它不要导入引号?我查看了批量插入和 OPENROWSET 的 MSDN 文档,并在互联网上搜索了没有运气。

【问题讨论】:

  • 我总是要么 (a) 批量插入临时表并在执行最终加载之前先删除引号(无论如何这在恢复方面可能更安全),或者 (b) 有一个简单的 C# 命令行工具,用于预解析数据文件并将其转换为正确的格式。
  • 我今天将它加载到临时表中,然后在加载到临时表后替换引号。我实际上希望能够停止这样做。

标签: sql-server sql-server-2008-r2


【解决方案1】:

当我使用BULK INSERT 时,我喜欢将我插入的数据推送到一个临时的#staging_table,通常是varchar() 列。这让我有机会在插入之前查看数据并以比原始BULK INSERT 流程更友好的方式检查错误。

在您的情况下,您可以考虑将您的内容推送到临时临时表,然后使用 UPDATEREPLACE() 删除双引号,然后再从临时表中插入修改后的内容。

【讨论】:

  • 我已经在这样做了,我正在尝试找到一种不再需要这样做的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-27
  • 2016-11-13
  • 2011-04-30
  • 2012-05-19
  • 2011-10-20
  • 1970-01-01
  • 2012-03-10
相关资源
最近更新 更多