【SQL-Server】WITH句を使った再帰処理で連番の生成
WITH句 の中で自分自身を読んでやれば再帰的に処理が行われる様です。
以下のSQLでは連番を生成する処理を再帰処理で行っています。
このSQLを実行すると以下の様になります。
但し、このままでは100件までの再帰処理しかできない様で、「SEQNO < 102」と指定すると以下の様にエラーが発生します。
メッセージ 530、レベル 16、状態 1、行 1
ステートメントが終了しました。ステートメントの完了前に最大再帰数 100 に達しました。
このエラーも OPTION (MAXRECURSION nnn) として指定し「nnn」に101以上を指定すればできることになります。
尚、 MAXRECURSION の範囲は「0」~「32767」で「0」指定は制限が無い様です。 制限無しでもあまりに大きい値は問題有りだとは思います。
このSQLを実行すると以下の様になります。
但し、このままでは100件までの再帰処理しかできない様で、「SEQNO < 102」と指定すると以下の様にエラーが発生します。
メッセージ 530、レベル 16、状態 1、行 1
ステートメントが終了しました。ステートメントの完了前に最大再帰数 100 に達しました。
このエラーも OPTION (MAXRECURSION nnn) として指定し「nnn」に101以上を指定すればできることになります。
尚、 MAXRECURSION の範囲は「0」~「32767」で「0」指定は制限が無い様です。 制限無しでもあまりに大きい値は問題有りだとは思います。
コメント