2016-10-08 18 views
1

次の祈りの時間の5分前に自動トリガを使用してこのクエリを実行するにはどうすればよいですか?ここでSQL Serverで特定の時刻にクエリを自動的にトリガする方法

SELECT 
    DATEADD(minute, -5, (SELECT TOP 1 TIME 
         FROM prayertimes 
         WHERE Time > sysdatetime())) AS TIME 

prayertimesテーブルの詳細は以下のとおりです。

Id P_id TIME 
--------------------------------- 
698 3 2016-10-08 15:31:00.000 
699 4 2016-10-08 18:02:00.000 
700 5 2016-10-08 19:32:00.000 
701 1 2016-10-09 04:59:00.000 
702 2 2016-10-09 12:08:00.000 
703 3 2016-10-09 15:30:00.000 
704 4 2016-10-09 18:02:00.000 
705 5 2016-10-09 19:32:00.000 

は、私たちは次の日時が2016-10-08 15:31:00.000であることを言ってみましょう。

次に、クエリを自動的に2016-10-08 15:26:00.000にトリガーしたいとします。

任意のストアドプロシージャ?

おかげ

仕事に
+4

は、あなたがhttp://stackoverflow.com/questions/5471080/how-to-schedule-a-job-for-sql-query-to-run-dailyを探して何本です – Pete

+2

のWindowsやSQLどちらもサーバーは特に、特定のミリ秒でタスクを実行するのに熟練しています。それから、時間の変化があります。信頼できるソースとDSTとのクロック同期が問題を混乱させる可能性があります。赦しは利用可能ですか? – HABO

+0

私はミリ秒は必要ありません。私はちょうど '2016-10-08 15:26:00.000'のような特定の分にそれをトリガする必要があります –

答えて

2

方法:

  1. は、ストアドプロシージャにクエリを入れて、

  2. 間隔DATEDIFF(minute,GETDATE(),<next pray time>)毎分(または30秒)をチェックするジョブを作成し、

  3. 間隔が< = 5分の場合、ストアドプロシージャの実行が開始されます。

トリガーとジョブの方法。

  1. 更新のトリガーを作成し、挿入、スケジュールを作成する最初のステップで作成し、

  2. があなたのクエリを起動するジョブを作成し、スケジュールが最新の状態に保つために

  3. トリガーを削除

  4. テーブルに変更が加えられた場合、トリガーはジョブスケジュールを更新する必要があります。

関連する問題