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.