Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL:errore, è stato raggiunto il limite dei servizi di espressione?

Questo problema si verifica perché SQL Server limita il numero di identificatori e costanti che possono essere contenuti in una singola espressione di una query. Il limite è 65.535. Il test per il numero di identificatori e costanti viene eseguito dopo che SQL Server ha espanso tutti gli identificatori e le costanti a cui si fa riferimento. In SQL Server 2005 e versioni successive, le query vengono normalizzate e semplificate internamente. E questo include *(asterisco), colonne calcolate ecc.

Per aggirare questo problema, riscrivi la query. Fare riferimento a meno identificatori e costanti nell'espressione più grande nella query. È necessario assicurarsi che il numero di identificatori e costanti in ciascuna espressione della query non superi il limite. Per fare ciò, potrebbe essere necessario suddividere una query in più di una singola query. Quindi, crea un risultato intermedio temporaneo.