【发布时间】:2017-02-19 22:06:48
【问题描述】:
我想发送一封包含查询结果作为 csv 附件的电子邮件。
到目前为止我有这个;
EXEC msdb.dbo.sp_send_dbmail
@recipients='me@myself.com',
@subject='CSV Extract',
@profile_name = 'Valid profile',
@body='See attachment',
@query ='SELECT TOP 10 c.* FROM MyDb.dbo.Customers c',
@attach_query_result_as_file = 1,
@query_attachment_filename = 'CSV_Extract.csv',
@query_result_separator = ','
我收到了带有 csv 附件的电子邮件,但在 Excel 中打开时,结果的格式非常糟糕(例如,所有值都在一个列中,并且看似随机缩进)
我应该怎么做才能获得具有正确列标题等格式的正确结果?
编辑
我在查询中添加了以下参数;
@query_result_width = 32767,
@query_result_no_padding = 1
这大大改善了事情,但是当在 Excel 中打开时,我仍然将每条记录放在一个列中。如何将记录中的每个值放入它自己的列中?
这是我目前得到的;
这就是我所追求的;
【问题讨论】:
-
由于您需要的格式只有您自己知道,请尝试使用以下值
@query_result_separator=',',@query_result_width =32767, @query_result_no_padding=1 -
包括“set nocount on;”在查询字符串中删除了我的结果中的“(受影响的 2 行)”行
标签: sql sql-server tsql csv stored-procedures