SQL Email to CSV,结果有Line Sclitting问题

时间:2017-11-07 22:47:36

标签: sql-server csv sp-send-dbmail

这个问题类似于我发现的几个问题,其中Line Feeds或回车会导致将SQL网格结果复制到Excel以导致Line Splitting问题,并且您的结果将被切断并在下一行开始。

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代理中动态运行,然后以csv格式通过电子邮件发送结果。我也尝试在视图中保存SQL并在动态SQL中调用视图只是为了好玩,没有变化。

1 个答案:

答案 0 :(得分:1)

有同样的问题,结果是当它达到255个字符时换行。如果您的PartDescription字段包含许多字符,我认为您可能会遇到同样的问题。假设您使用sp_send_dbmail,则添加选项:

@query_result_width=500

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