这个问题类似于我发现的几个问题,其中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中调用视图只是为了好玩,没有变化。
答案 0 :(得分:1)
有同样的问题,结果是当它达到255个字符时换行。如果您的PartDescription字段包含许多字符,我认为您可能会遇到同样的问题。假设您使用sp_send_dbmail
,则添加选项:
@query_result_width=500
或您需要的任何宽度,它应该修复它。