Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL:Fehler, Expression Services-Limit erreicht?

Dieses Problem tritt auf, weil SQL Server die Anzahl der Bezeichner und Konstanten begrenzt, die in einem einzelnen Ausdruck einer Abfrage enthalten sein können. Die Grenze liegt bei 65.535. Der Test für die Anzahl der Bezeichner und Konstanten wird durchgeführt, nachdem SQL Server alle referenzierten Bezeichner und Konstanten erweitert hat. In SQL Server 2005 und höher werden Abfragen intern normalisiert und vereinfacht. Und dazu gehören *(Sternchen), berechnete Spalten usw.

Um dieses Problem zu umgehen, schreiben Sie Ihre Abfrage neu. Verweisen Sie im größten Ausdruck der Abfrage auf weniger Bezeichner und Konstanten. Sie müssen sicherstellen, dass die Anzahl der Bezeichner und Konstanten in jedem Ausdruck der Abfrage das Limit nicht überschreitet. Dazu müssen Sie eine Abfrage möglicherweise in mehr als eine einzelne Abfrage aufteilen. Erstellen Sie dann ein temporäres Zwischenergebnis.