Azure SQL批量插入文本限定符

时间:2018-09-17 16:50:19

标签: sql csv azure-sql-database sql-server-2016

现在是2018年,似乎将文本文件导入SQL并不明智。 我有一个与此类似的文本文件:

    "id","name","company","contract","notes"... 
    "234","Joe","conteso","pending","notes can have line feeds
 and/or carrage returns"
    "313","Ann","conteso",,"notes can have a , comma"
    "213","Ken",,,""

我已经建立了一个xml fmt文件。 用类似于

的行
  <FIELD ID="2" xsi:type="CharTerm" TERMINATOR='","' COLLATION="SQL_Latin1_General_CP1_CI_AS"/>

但是您可以看到,我不能使用“,”作为分隔符,因为“如果为null则是可选的。而且,我不能仅使用逗号,因为notes字段会搞砸它(notes后有几列)

有什么想法可以解析吗? ..我正在从Blob存储加载到Azure SQL中。

-肯

1 个答案:

答案 0 :(得分:0)

简而言之,批量插入无法做到这一点。 我能够解决此问题的唯一方法是,更改创建源的Powershell以使用制表符定界,并编写一个存储的sproc来删除所有具有双引号的列值中的前导和尾随双引号。需要越过它。.

-肯