sql >> Base de Datos >  >> RDS >> Sqlserver

Limitación de cláusula IN en Sql Server

Sí, hay un límite, pero MSDN solo especifica que se encuentra "en miles":

Incluir una cantidad extremadamente grande de valores (muchos miles) en una cláusula IN puede consumir recursos y devolver los errores 8623 o 8632. Para solucionar este problema, almacene los elementos de la lista IN en una tabla.

Al observar esos errores en detalle, vemos que este límite no es específico de IN pero se aplica a la complejidad de la consulta en general:

Error 8623:

El procesador de consultas se quedó sin recursos internos y no pudo producir un plan de consulta. Este es un evento raro y solo se espera para consultas extremadamente complejas o consultas que hacen referencia a una gran cantidad de tablas o particiones. Por favor, simplifique la consulta. Si cree que ha recibido este mensaje por error, comuníquese con el Servicio de atención al cliente para obtener más información.

Error 8632:

Error interno:se alcanzó un límite de servicios de expresión. Busque expresiones potencialmente complejas en su consulta e intente simplificarlas.