MSSQLSERVER_8632
Gilt für:SQL Server
Details
attribute | Wert |
---|---|
Produktname | SQL Server |
Ereignis-ID | 8632 |
Ereignisquelle | MSSQLSERVER |
Komponente | SQLEngine |
Symbolischer Name | QUERY_EXPRESSION_TOO_COMPLEX |
Meldungstext | Interner Fehler: Ein Ausdrucksdienstelimit wurde erreicht. Suchen Sie nach potenziell komplexen Ausdrücken in Ihrer Abfrage, und vereinfachen Sie diese. |
Erklärung
Der Fehler 8632 wird ausgelöst, wenn Sie eine Abfrage in SQL Server ausführen, die eine große Anzahl von Bezeichnern und Konstanten in einem einzelnen Ausdruck enthält. Dem Benutzer wird eine Fehlermeldung wie die folgende angezeigt:
Server: Meldung 8632, Ebene 17, Status 2, Zeile 1
Interner Fehler: Ein Ausdrucksdienstelimit wurde erreicht. Suchen Sie nach potenziell komplexen Ausdrücken in Ihrer Abfrage, und vereinfachen Sie diese.
Ursache
Dieses Problem tritt auf, weil SQL Server die Anzahl von Bezeichnern und Konstanten beschränkt, die in einem einzelnen Ausdruck einer Abfrage enthalten sein können. Dieser Grenzwert ist 65.535. Die folgende Abfrage umfasst beispielsweise nur einen Ausdruck:
select a, b + c, d + e
Dieser Ausdruck ruft alle fünf Spalten ab, berechnet die Additionsoperatoren und sendet drei projizierte Ergebnisse an den Client.
Der Test für die Anzahl der Bezeichner und Konstanten wird ausgeführt, nachdem SQL Server alle referenzierten Bezeichner und Konstanten erweitert hat. Beispielsweise können die folgenden Elemente erweitert werden:
- das Sternchen (*) in der Auswahlliste
- eine Ansicht
- die Definition einer berechneten Spalte
Wenn die Zahl den Grenzwert nach der Erweiterung überschreitet, kann die Abfrage nicht ausgeführt werden.
Benutzeraktion
Sie müssen die Abfrage neu schreiben, um dieses Problem zu umgehen. Verweisen Sie im größten Ausdruck in der Abfrage auf weniger Bezeichner und Konstanten. Sie müssen sicherstellen, dass die Anzahl der Bezeichner und Konstanten in den einzelnen Ausdrücken der Abfrage den Grenzwert nicht überschreitet. Zu diesem Zweck müssen Sie eine Abfrage möglicherweise in mehr als eine einzelne Abfrage aufteilen. Erstellen Sie dann ein temporäres Zwischenergebnis.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für