CSV文件将我的行数据拆分为单独的行

时间:2015-01-12 16:32:16

标签: sql sql-server-2008

我有一个创建CSV文件的查询,然后通过电子邮件发送给用户,但CSV文件的格式不正确。出于某种原因,当CSV文件被打开时,它将我的一些行分成两个单独的行,原因不明!行的拆分似乎是随机完成的,因为有些行被拆分而其他行保持不变。这是一个难以解释的场景,所以下面显示了我写的用于创建CSV文件并通过电子邮件发送给用户的查询,然后是CSV文件的结果!

EXEC msdb.dbo.sp_send_dbmail 
@profile_name='TestProfile',
@recipients='Test@gmail.com',
@subject='Test message',
@body='This is a test.',
@query = 'Select *
FROM (
SELECT 
    replace(LEFT(convert(NVARCHAR, getdate(), 106),6) + ''-'' + RIGHT(year(convert(NVARCHAR, getdate(), 106)),2), '' '', ''-'') as [Date],
    FirstName, Surname,TestTime as TestTime ,  Percentage as Percentage, Score as Score       
FROM TestDatabase.dbo.TestingTable
) as s
PIVOT
(
SUM(Score)
FOR [TestTime] IN ([00:00],[00:30],[01:00],[01:30],[02:00],[02:30],[03:00],[03:30],[04:00],[04:30],[05:00],[05:30],[06:00],[06:30],[07:00],[07:30],[08:00],[08:30],[09:00],[09:30],[10:00],[10:30],[11:00],[11:30],[12:00],[12:30],[13:00],[13:30],[14:00],[14:30],[15:00],[15:30],[16:00],[16:30],[17:00],[17:30],[18:00],[18:30],[19:00],[19:30],[20:00],[20:30],[21:00],[21:30],[22:00],[22:30],[23:00],[23:30])
) Results
',
@query_result_separator = ' ',
@query_result_header = 1,
@exclude_query_output = 1,
@append_query_error = 1,
@attach_query_result_as_file = 1, 
@query_attachment_filename = 'test.csv',
@query_result_no_padding = 1

输出

enter image description here

实际上它应该是这样的:

enter image description here

底部图片格式正确,顶行按照预期从00.00转到23.30

1 个答案:

答案 0 :(得分:0)

默认情况下,sp_send_dbmail会在任意给定行上的256个字符后插入换行符。您可以通过在调用存储过程时指定@query_result_width参数来修改此项。最大值为32767。

除此之外:如果这应该是CSV文件,为什么@query_result_separator = ' '而不是@query_result_separator = ','