Puedo entender querer evitar tener que usar un cursor debido a la sobrecarga y las molestias, pero parece que está ocurriendo una seria fobia al cursor donde la gente hace todo lo posible para evitar tener que usar uno.
Por ejemplo, una pregunta preguntó cómo hacer algo obviamente trivial con un cursor y la respuesta aceptada propuso utilizar una consulta recursiva de expresión de tabla común (CTE) con una función personalizada recursiva, aunque esto limita el número de filas que podrían procesarse a 32 (debido al límite de llamadas a funciones recursivas en el servidor sql). Esto me parece una solución terrible para la longevidad del sistema, sin mencionar un tremendo esfuerzo solo para evitar usar un cursor simple.
¿Cuál es la razón de este nivel de odio loco? ¿Alguna 'autoridad notoria' ha emitido una fatwa contra los cursores? ¿Algún mal indescriptible acecha en el corazón de los cursores que corrompe la moral de los niños o algo así?
Pregunta de Wiki, más interesado en la respuesta que en el representante.
Información relacionada:
Cursores de avance rápido de SQL Server
EDITAR: permítanme ser más preciso: entiendo que los cursores no deben usarse en lugar de las operaciones relacionales normales ; eso es obvio. Lo que no entiendo es que las personas se desviven mucho para evitar cursores como si tuvieran piojos o algo así, incluso cuando un cursor es una solución más simple y / o más eficiente. Es el odio irracional lo que me desconcierta, no las eficiencias técnicas obvias.
32
es una tontería. Presumiblemente estás pensando en disparadores recursivos y el máximo @@NESTLEVEL
de 32
. Se puede configurar en la consulta OPTION (MAXRECURSION N)
con el valor predeterminado 100
e 0
ilimitado.