2017-10-06 37 views
1

我有一項工作,每週一發送上週的報告。我希望這個附件可以顯示上週的Week#ie。第36周,第37周等,或者簡單地具有發送報告的時間戳,或者打開文件以應用時間戳來報告用戶何時打開它。 原因是我們已經發布了這些報告,並希望管理層知道報告是否是最新的(他們通常不會這樣)我們可以通過這種方式破解鞭子:)將時間戳插入到SP_Send_DBMail中的.TXT文件附件[SQL]

繼承人什麼都得到了,我也會顯示我是什麼請求

要發送報告的代碼----------------------------------------- ----------------

EXEC msdb.dbo.sp_send_dbmail 
@profile_name = 'profile', 
@recipients = '[email protected]', 
@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的地方,我插入最後一個星期 - 2012年一個結果集的列,但是非常難看,看到日期的次數與行一樣多,爲了節省空間,我只顯示了4行。任何想法或幫助?我也嘗試讓收件人只需按F5,當他們打開文件插入時間戳的方式....它很容易顯示馬水,但非常難使它喝:)

回答

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 = '[email protected]', 
@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 = ' '; 
+0

是的,這種方法最適合我需要的功能 – DRUIDRUID