数据导入时SQL Server转义序列

时间:2014-12-13 19:55:26

标签: sql-server sql-server-2012

我将数据从.csv文件导入SQL Server 2012(数据库 - >任务 - >导入)

我在.csv档案

中找到了此记录
426264,Edappally\,Toll Junction\,Infront of Mosque\,,1900-01-01 06:25:00,1900-01-01 06:25:00,1139523,37,3248457

实际观点是我必须在单个列中插入"Edappally\,Toll Junction\,Infront of Mosque\",但我的记录是在不同的列中插入"Edappally\""Toll Junction\""Infront of Mosque\"

你能不能请各位帮我插入" Edappally \,Toll Junction \,Infront of Mosque \"在单列?

1 个答案:

答案 0 :(得分:0)

如果字段包含分隔符,则SQL Server要求带逗号的字段具有带引号的字段标识符(通常为双引号),如426264,"Edappally,Toll Junction,Infront of Mosque,",1900-01-01 06:25:00,...。或许426264,"Edappally\,Toll Junction\,Infront of Mosque\,",1900-01-01 06:25:00,...。我无法判断您是否要插入转义序列。最简单的解决方案是使用带引号的字段标识符或不同的分隔符重新生成数据文件。

如果您无法做到这一点,我的建议是更改您已有文件中的字段分隔符。假设文件中的每个逗号都是分隔符或显示为\,,则可以非常轻松地进行更改。

首先,选择一个新的分隔符。管道字符|或标签都很好。让我们说你选择管道。

接下来,确保管道中的字符不在任何位置。有很多方法可以做到这一点。文本编辑器可能是最简单的。

然后,搜索文件并用管道替换每个逗号。这也将替换您的转义逗号,但我们将在下一步修复它。

最后,如果您不需要在插入的字段中转义,请将\|的每个实例替换为\,(或仅,。这应该还原我们在上一步中更改的所有转义逗号。

现在,当您将其导入SQL Server时,请告诉您使用|代替,作为字段分隔符。