【问题标题】:How do I get SQL Server Management Studio to save CSV in the correct format?如何让 SQL Server Management Studio 以正确的格式保存 CSV?
【发布时间】:2020-03-30 22:52:40
【问题描述】:

如果我不添加任何内容而只是“将结果另存为...”csv,那么除了第一列和最后一列之外,所有内容都被正确引用和分隔。

我有一个不包含选项“Quote strings containing list separators when saving .csv results”的更高版本的 SQL Server Management Studio。我已经使用 REPLACE 和 QUOTENAME 来尝试以正确的格式获取它。

例如,它应该看起来像"00301", "1020", "Description", "Email" but without any changes I get 00301, "1020", "Description", Email.

当我使用 QUOTENAME 将引号添加到第一列和最后一列时,它会在结果窗口中显示正确的格式,但是当我保存为 csv 时,它现在会为这些列添加额外的引号。现在我得到"""00301""", "1020", "Description", """Email"""

当我使用 REPLACE 时,它会将其连接成一列,但仍然不能正确引用。

【问题讨论】:

  • SSMS 知道列的数据类型并且不引用 int 列。
  • CSV 数据在某些情况下只需要在列数据周围加上引号(主要是列数据包含逗号,如果没有引号将被视为列分隔符 - 引号中的值会转义嵌入分隔器)。您的第一个示例输出似乎非常好 - 不需要缺少的引号。您是否对该 CSV 文件有特定问题,或者您只是因为认为每个值都应该有引号而感到不安?
  • 为了将它上传到我需要的程序中,我需要引用每个值。你说它不引用 int 列,但我的最后一列不是 int。

标签: sql csv replace ssms quotes


【解决方案1】:

我开发的插件有一个解决方案: SSMSBoost 可以通过多种方式导出 ResultsGrid,您需要的一种方式称为“ResultsGrid scripter”。它使用可自定义的模板将数据导出到文件。 您可以使用现有模板之一来创建自己的模板(这很容易)。

有关数据导出的视频,其中引用了脚本:https://www.youtube.com/watch?v=waDCukeXeLU

功能描述:https://www.ssmsboost.com/Features/ssms-add-in-results-grid-script-results

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 2010-09-28
    • 2023-03-26
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多