到達すると停止します。セマンティクスがより共通的に使用されています。セマンティクスは、以下のような状況では緩く定義されています。句を含む共通テーブル表現を使用して形成されています。文法のサブセットです。list>再帰クエリーは、以下のように制限されています。ALLに制限されています。各仮想再帰テーブルは、そのテーブルの定義において多くとも1度しか参照される可能性はありません。progressions)しか許していません。再帰が継続すると、(仮想)再帰テーブルはサイズの拡大しか許されません。修正することもできません。暴走クエリーを防ぐために再帰計算の制限を特定するシンタックスが含まれます。標準からの追加のシンタックスは、下のとおりです。サポートしていません。計算を許していることに注意してください。結果セットがそれ以上は大きくならないところまで、結果セットにローを追加し続け、永遠にループするストアドプロシージャーを使用するなど、再帰結果セットを呼び起こすことを妨げるものはありません。データベースをバックエンドとした再帰クエリーの処理方法です。クエリーをとおして結果を計算する方が、ずっとシンプルで効率的です。毎の単一の再帰クエリで生成するのは、直接的にはできないことが明らかです。我々がしなければならないことは、構成されたら、再帰を使用して中間結果を構成することです。必要なことは、一度構成されれば必要な結果を生成することができる別のクエリへのインプットとして使用することが可能な中間結果を再帰を使用して構成することです。し、再帰クエリ表現を呼び出すことが必要だと述べました。employeeの数を計算します。ヒエラルキーを反映する追加の中間結果ローを生成することです。ManagerID)が必要だということです。完全なクエリーと生成された結果セットは下のとおりです。この中間結果について、いくつか特別なポイントがあります。ドキュメントする追加ローを作成します。ローが再度含まれるのを防ぎます。外部キー値(ManagerID)を同じローに使用して特定することができます。値を使用しているのであれば、この追加句は必要ありません。EmpsByManager下のラインでリプレースします。接続オプションを提供しています。ある特定のクエリーで必要な再帰の数は、再帰のヒエラルキーの深さに等しくなければなりません。多くの状況では、これは、ほぼ間違いなく、100よりかなり少なくなります。この接続オプションを小さな値に設定すると、暴走クエリーの異常なリソース消費を防ぐことができます。2つの追加接続オプションが用意されています。これらは、再帰クエリーが間違っている場合のカタストロフィックサーバー問題を避けるのに役立ちます。テンポラリスペースの使用を接続毎に制限するサーバーガバナーのパラメーターです。使用して再帰クエリーを計算します。上記の再帰クエリーのグラフィカルなプランは下のようになります。含む(仮想)再帰テーブルを意味します。再帰ハッシュジョインオペレーターを意味します。実行戦略におけるこの変更は、on-the-flyで実行されます。クエリーの呼び出しに苦労しているのであれば、便利なテクニックとして、最初の再帰のインタラクションをハンドコードし、そこから、何の属性と結果が(仮想)再帰中間結果に追加される必要があるかを決定する方法があります。上の例では、最初のインタラクションは以下のようになります。できるということがわかります。item.Cancel。