Compartir a través de


MSSQLSERVER_8632

Se aplica a: SQL Server

Detalles

Attribute Valor
Nombre del producto SQL Server
Id. de evento 8632
Origen de eventos MSSQLSERVER
Componente SQLEngine
Nombre simbólico QUERY_EXPRESSION_TOO_COMPLEX
Texto del mensaje Error interno: se ha alcanzado el límite de servicios de una expresión. Busque posibles expresiones complejas en la consulta e intente simplificarlas.

Explicación

Se produce el error 8632 al ejecutar una consulta en SQL Server que contiene un gran número de identificadores y constantes en una sola expresión. El usuario recibe un mensaje de error similar al siguiente:

Servidor: msg 8632, nivel 17, estado 2, línea 1
Error interno: se ha alcanzado el límite de servicios de una expresión. Busque posibles expresiones complejas en la consulta e intente simplificarlas.

Causa

Este problema se produce porque SQL Server limita el número de identificadores y constantes que se pueden contener en una sola expresión de una consulta. Este límite es 65 535 GB. Por ejemplo, la consulta siguiente solo tiene una expresión:

select a, b + c, d + e

Esta expresión recupera las cinco columnas, calcula los operadores de suma y envía tres resultados proyectados al cliente.

La prueba del número de identificadores y constantes se realiza después de que SQL Server expanda todos los identificadores y constantes a los que se hace referencia. Por ejemplo, los elementos siguientes se pueden expandir:

  • El asterisco (*) de la lista de selección
  • Una vista
  • Una definición de columna calculada

Si el número después de la expansión supera el límite, la consulta no se puede ejecutar.

Acción del usuario

Para solucionar este problema, vuelva a escribir la consulta. Haga referencia a menos identificadores y constantes en la expresión de mayor tamaño de la consulta. Tendrá que asegurarse de que el número de identificadores y constantes de cada expresión de la consulta no supere el límite. Para ello, es posible que tenga que dividir una consulta en más de una sola consulta. Después, cree un resultado intermedio temporal.