症状
使用 Microsoft SQL Server Management Studio (SSMS) 或 SQL Server Data Tools (SSDT) 将表导出为 CSV 文件。 例如,将表导出为 SQL Server Integration Services (SSIS) 项目的 CSV 格式。
如果选择双引号 (“) 作为文本限定符,如果任何记录都包含双引号,则在输出中可能无法正确转义这些标记。
例子
原始数据 |
big“data |
预期输出 |
“big”“data” |
实际输出 |
“大”数据” |
解决方法
SQL Server的以下更新中包含此问题的修复程序:
2017 SQL Server累积更新 8
安装此更新后,使用 CSV 格式导出表时,需要通过将其值设置为 True 来启用“转义限定符”功能。
使用转义行为时,需要在 SSDT 中为保存的 SSIS 包更改“转义限定符”功能。
以下屏幕截图显示了 EscapeQualifier 属性的详细信息:
注意:
-
SQL Server导入和导出向导具有无法启用此功能的限制,因为 EscapeQualifier 属性默认处于禁用状态。
-
只能通过向导保存 SSIS 包,并通过 SSDT 修改该属性以获取此功能。
-
有关详细信息,请参阅平面文件自定义属性 - SQL Server Integration Services (SSIS) |Microsoft Learn。
关于SQL Server生成
SQL Server的每个新版本都包含上一版本中的所有修补程序和安全修补程序。 建议为版本的SQL Server安装最新版本:
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
参考
了解 Microsoft 用于描述软件更新的标准 术语 。