複数のテーブルに結合する再帰的なCTEクエリとテーブルを同期させておく必要があります。 CTEは、実行されるたびに異なる結果を返すことがあります(結合したテーブルに変更が加えられた場合)。 CTEは遅く、トリガを起動させる余裕がありません。トリガを発生させたクエリは、トリガが発生するまで戻らないため(単一のレコードを単純に更新する必要はありません)トリガーが完了するのを待っているので15秒間)。 SSMSにソリューションを実装する方法についての詳細は、いいかもしれませんが、必要ではありません。同じSQL Serverデータベース内のクエリ(ビュー)とテーブルを同期させる必要がある
解決策の1つは、スケジュールされたジョブでCTEを実行し、その結果をテーブルにマージすることです。スケジュールされたジョブは数秒ごとに実行されるので、テーブルはできるだけ最新の状態に保たれます。しかし、Sql Server 2005でスケジュールされたジョブを作成する方法や、CTEクエリの結果をテーブルとマージする方法はわかりません。
がどのように私はCTEを使用して可能な限りリアルタイムに近い日付にテーブルを維持します:
は私の質問を修正再表示するには?
スケジュールされたジョブは、多くとも数秒に1回、1分に1回実行できます。私はその答えがサービスブローカのキューに関係している可能性が高いと思います。テーブルが期限切れのデータを返す場合、どの程度重要ですか?テーブルがまだ同期されていない場合、ブロックされるべきである「選択」すべきか? –
いいえテーブルを選択可能に保つ方がずっと良いです。それは難しい高速要求です。同期時間外では...同期が1〜2分遅れても問題ありません。 –