MSSQLSERVER_8632
適用対象:SQL Server
詳細
属性 | 値 |
---|---|
製品名 | SQL Server |
イベント ID | 8632 |
イベント ソース | MSSQLSERVER |
コンポーネント | SQLEngine |
シンボル名 | QUERY_EXPRESSION_TOO_COMPLEX |
メッセージ テキスト | 内部エラー:Expression Service の制限に達しました。 クエリを確認し、複雑な式がある場合は簡素化してください。 |
説明
1 つの式に多数の識別子と定数を含む SQL Server でクエリを実行すると、エラー 8632 が発生します。 次のようなエラー メッセージがユーザーに報告されます。
サーバー: メッセージ 8632、レベル 17、状態 2、行 1
内部エラー:Expression Service の制限に達しました。 クエリを確認し、複雑な式がある場合は簡素化してください。
原因
この問題が発生するのは、1 つのクエリ式に含めることができる識別子と定数の数が SQL Server によって制限されるためです。 上限は 65,535 個です。 たとえば、次のクエリには式が 1 つだけ含まれています。
select a, b + c, d + e
この式は、5 つの列をすべて取得し、加算演算子を計算して、3 つの予想される結果をクライアントに送信します。
識別子と定数の数のテストは、SQL Server によって参照されているすべての識別子と定数が展開された後に実行されます。 たとえば、次の項目を展開できます。
- 選択リストのアスタリスク (*)
- ビュー
- 計算列の定義
展開後の数値が制限を超えている場合は、クエリを実行できません。
ユーザー アクション
この問題を回避するには、クエリを書き直してください。 クエリの最大の式で参照する識別子と定数を減らします。 クエリの各式の識別子と定数の数が制限を超えないようにする必要があります。 これを行うには、クエリを複数の単一クエリに分割することが必要になる場合があります。 次に、一時的な中間結果を作成します。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示