2016-12-07 7 views
0

要件: クエリ結果を毎月初めに電子メールで送信します。SQL Server 2012で毎月1日ごとに電子メールでクエリ結果を送信

私は手動で行ってきた作業:

  • 私は日付の範囲を変更することにより、毎月のすべての最初の日、このクエリを実行する必要があります。
  • その後、私は私はこのプロセスを自動化するものとどのように人々にあなたからの提案を必要とした.csv形式で取得した結果をエクスポートして、添付ファイル

として、このcsvファイルを送信します。

  • 私が設定しましょうSQL Server 2012でジョブを作成することはできますが、はい、日付範囲を変更する必要があります。

今後の進め方をお勧めします。

ご迷惑をおかけして申し訳ございません。

答えて

1

上記のとおり、ジョブを作成し、毎月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のファイルbatファイルが実行されたときに電子メールをトリガの内容になります。 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) 
関連する問題