从SP_Send_DBMail [SQL]插入.TXT文件附件的时间戳

时间:2017-10-06 17:34:35

标签: sql sql-server sql-server-2008

我有一份工作,每周一都会发送上周报告。我希望附件显示在上周的周#即。第36周,第37周等,或者只是具有发送报告的时间戳,或者打开文件以在用户打开报告时应用时间戳报告。 原因是我们发布了这些报告,并希望管理层知道报告是否是最新的(他们通常不是这样)这样我们可以破解鞭子:)

继承人我得到了什么,我也将展示我的要求

发送报告的代码------------------------------------------- --------------

EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'profile',
@recipients = '10@ten.com',
@subject = 'Weekly',
@query = N'EXEC PTW.dbo.SP_Weekly',
@attach_query_result_as_file = 1,
@query_result_width = 150,
@query_result_header= 1,
@query_attachment_filename = 'Weekly.txt',
@importance = 'High',
@query_result_no_padding = 1,
@query_result_separator = '   ';

附件的结果-------------------------------------------- ----------

ID      Codes   TimeSUM Units   UPH     Goal%   
--      -----   ------- -----   ---     -----   
3476    HS-HY   5:53    9520    1618    140%    
2377    HS-HY   13:37   21638   1589    138%    
2372090 HS-HY   4:20    6036    1393    121%    
43864   HS-HY   13:46   15035   1092    95% 

(4 rows affected)

我希望看到以下任何内容

WEEK_35 or `CURRENT_TIMESTAMP` or Timestamp of when file is opened
ID      Codes   TimeSUM Units   UPH     Goal%   
--      -----   ------- -----   ---     -----   
3476    HS-HY   5:53    9520    1618    140%    
2377    HS-HY   13:37   21638   1589    138%    
2372090 HS-HY   4:20    6036    1393    121%    
43864   HS-HY   13:46   15035   1092    95% 

(4 rows affected)

我更希望展示一周#,但任何都可行 我已经将SP编码到我在结果集的一列中插入最后几周日期的位置但是看到日期的次数非常难看,因为有行,为了节省空间我只显示了4行。任何想法或帮助?我也试图让收件人只需按下F5,当他们打开文件时插入时间戳就这样....很容易让马出现水,但很难让它喝水:)

1 个答案:

答案 0 :(得分:0)

要显示发送日期,我的想法是更改主题和query_attachment_filename以反映当前周,例如:

DECLARE @FileName VARCHAR(50)
SET @FileName = 'Weekly_' + CONVERT(VARCHAR(2), Datepart(Week, Getdate())) + '.txt'

EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'profile',
@recipients = '10@ten.com',
@subject = @FileName,
@query = N'EXEC PTW.dbo.SP_Weekly',
@attach_query_result_as_file = 1,
@query_result_width = 150,
@query_result_header= 1,
@query_attachment_filename = @FileName,
@importance = 'High',
@query_result_no_padding = 1,
@query_result_separator = '   ';