【问题标题】:SQL Server Management Studio data extract with tabs使用选项卡提取 SQL Server Management Studio 数据
【发布时间】:2015-11-17 21:40:02
【问题描述】:

我目前正在使用 Microsoft SQL Server Management Studio 的一个项目,在以 .csv 格式保存文件时遇到了问题。特别是,我正在提取的某些列的数据类型为 nvarchar,并且在 1 个单元格中包含多行。

将数据导出到.csv 文件时,无论我选择哪个分隔符(,tab|),Excel 都会自动删除该行。我认为这是由于CHAR(13) 和/或CHAR(10) 存在于某些单元格中。

对我来说已经有用的是用其他一些字符替换CHAR(10)/CHAR(13),但这对数据完整性的干预太多了。

我能够在 SSRS 工具中获得我需要的东西,但是考虑到大量数据,我想知道是否有办法设置 SQL Server Management Studio,以便它“锁定”单元格包含,以防单元格包含多行/多行,它仍然会显示在一个单元格中。

我在这里尝试了几篇文章和一些其他资源,但似乎没有一个能回答这个具体问题。

任何帮助将不胜感激。

【问题讨论】:

  • 在记事本中打开 csv 会发生什么?
  • 在记事本中它似乎没有掉线,但是当从记事本复制到 excel 时它确实又掉线了。

标签: excel ssms data-extraction


【解决方案1】:

当您从 SSMS 导出数据时,在每个字符串列的数据周围加上引号将导致分隔符之间的数据被视为单个数据字段。

在 SSMS 中有一个选项,在 Tools -> Options -> Query Results -> SQL Server -> Results to Grid 中,它被称为“在保存 .csv 结果时引用包含列表分隔符的字符串”。

抱歉,以上内容不适用于换行符。我读了一个 SO here 有一些有用的建议。

最相关的是:

  1. 如果有需要,只需从 SSMS 剪切粘贴到 excel。

  2. 如果您想以更自动化的方式进行操作,请使用 SSIS。

【讨论】:

  • 感谢您的回复,哈维。我最初勾选了这个选项,所以除非我在重新勾选后需要做一些特定的事情,否则由于某种原因它对我不起作用。
  • 用记事本打开文件时,字符串字段是否被“?”包围?
  • 不。可能是因为文件导出为 .csv 而不是 .txt?
  • 在我上面的回答中看到额外的一点
猜你喜欢
  • 1970-01-01
  • 2020-06-30
  • 2019-03-02
  • 1970-01-01
  • 1970-01-01
  • 2011-06-18
  • 1970-01-01
  • 2010-10-08
  • 2014-05-20
相关资源
最近更新 更多