2016-12-07 40 views
0

我的需求: 在每個月的第一天通過電子郵件附件發送查詢結果。在SQL Server 2012上每個月的第一天通過電子郵件附件發送查詢結果

我一直在做手工工作:

  • 我通過更改日期範圍運行此查詢每月的第一天。
  • 然後我出口.csv格式所獲得的結果,並將其發送csv文件作爲附件

我需要建議從你的人我如何將這個過程自動化:

  • 難道我設置在SQL Server 2012上完成一項任務,但是,我必須修改日期範圍。

請建議如何前進。

任何幫助,非常感謝。

回答

1

正如您所提到的,創建作業並安排它在每個月的第一天運行。考慮到你對創造工作有足夠的知識。

自己的工作性質 - >時刻表 - >並進行以下設置

enter image description here

發生在12:00:00每1個月(一個或多個)的每個第一天。計劃將從07-12-2016開始使用 。

根據您的業務需求更改時間(在哪個時間應該在月的第一天運行)。它可以設置爲Daily frequency-> Occurs once at:

+0

謝謝@Prdp的內容進行快速響應! –

+0

如何通過電子郵件發送作業運行的查詢結果? –

+0

@ChetanHireholi - 查看以下文章https://www.brentozar.com/archive/2014/10/send-query-results-sql-server-agent-job/如果在執行任何問題時提出一個新問題 –

0

該過程也可以通過使用Windows批處理文件的另一種方式實現自動化。您可以使用Windows調度程序對其進行調度。 將在下面的批處理文件

Echo off 
sqlcmd -u <username> -p <password> -S <server name> -d <database name> -i <sql file location> -o <output result file location> 

Powershell.exe -executionpolicy remotesigned -File <location of powershell file> 

PowerShell的文件運行批處理文件時觸發電子郵件的內容。 PowerShell的文件

$smtpserver = "<smtp server name>" 
$from="mail id" 
$to="<mail id" 
$a = Get-Date 
$subject= "<subject line> `r"+ $a.Month +"/"+$a.Day +"/"+ $a.Year 
$body="" 
$attachment="File location" 
Thanks,`n " 
$mailer = new-object Net.Mail.SMTPclient($smtpserver) 
$msg = new-object Net.Mail.MailMessage($from,$to,$subject,$body,$data1,$a) 
$msg.IsBodyHTML = $true 
$mailer.send($msg) 
相關問題