SQL 电子邮件到 CSV,结果有换行问题

SQL Email to CSV, Results have Line Splitting issues

这个问题类似于我发现的几个问题,其中换行或回车 returns 导致将 SQL 网格结果复制到 Excel 时出现换行问题,您的结果将被切断并从下一行开始。

Name     Order#    Date        PartDescription     Store      Phone#
----     -------   ------      ----------------    -----      -----------
Tom's    3181      10/7/2017   SB4356 Artwork...   Downtown   208.452.6354

看起来会像这样

Name     Order#    Date        PartDescription     Store      Phone#
----     -------   ------      ----------------    -----      -----------
Tom's    3181      10/7/2017   SB4356 Artwork...   Downt   
own      2080.452.6354

但是,当我将 SQL 网格结果复制到 Excel 时,不会出现此问题。当我 运行 将 SQL 作为动态 sql 并通过 CSV 将结果通过电子邮件发送给自己时,就会出现此问题。我不确定这里有什么区别。该问题可以隔离到“部件描述”字段,它通常有 100 多个用户输入的字符。如果我删除该字段,则不会发生这种情况。

我试过:

LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE( PartDescription, CHAR(13), ''), CHAR(10), ' '), CHAR(9), ' '), ',', ' ')))

小步试过,没有任何效果。就像我说的,它可以将结果复制到 Excel。只是当我通过电子邮件将其发送到 CSV 时不会。我不太确定如何隔离可能导致这种情况的不可见特征(如果是这种情况)。

我过去曾使用此方法修复其他自动报告。这个人很固执。 SQL 运行 在 SQL Server Agent 中动态,然后以 csv 格式通过电子邮件发送结果。我还尝试在视图中保存 SQL 并在动态 SQL 中调用视图只是为了好玩,没有改变。

有同样的问题,原来是在达到 255 个字符时换行。我想如果您的 PartDescription 字段有很多字符,您可能会遇到同样的问题。假设您正在使用 sp_send_dbmail,如果您添加选项:

@query_result_width=500

或者你需要的任何宽度,它应该修复它。