Je peux comprendre de vouloir éviter d'avoir à utiliser un curseur en raison de la surcharge et des inconvénients, mais il semble qu'il y ait une grave phobie-manie du curseur où les gens se donnent beaucoup de mal pour éviter d'en utiliser un.
Par exemple, une question demandait comment faire quelque chose de évidemment trivial avec un curseur et la réponse acceptée proposée à l'aide d'une requête récursive d'expression de table commune (CTE) avec une fonction personnalisée récursive, même si cela limite le nombre de lignes pouvant être traitées à 32 (en raison de la limite d'appel de fonction récursive dans le serveur SQL). Cela me semble être une solution terrible pour la longévité du système, sans parler d'un effort énorme juste pour éviter d'utiliser un simple curseur.
Quelle est la raison de ce niveau de haine insensée? Une «autorité notoire» a-t-elle émis une fatwa contre les curseurs? Un mal indicible se cache-t-il au cœur des curseurs qui corrompt la morale des enfants ou quelque chose du genre?
Question Wiki, plus intéressée par la réponse que par le représentant.
Informations connexes:
Curseurs d'avance rapide SQL Server
EDIT: permettez-moi d'être plus précis: je comprends que les curseurs ne doivent pas être utilisés à la place des opérations relationnelles normales ; c'est une évidence. Ce que je ne comprends pas, c'est que les gens se mettent en quatre pour éviter les curseurs comme s'ils avaient des cooties ou quelque chose du genre, même lorsqu'un curseur est une solution plus simple et / ou plus efficace. C'est la haine irrationnelle qui me déroute, pas les efficiences techniques évidentes.
32
est absurde. Vous pensez probablement aux déclencheurs récursifs et au maximum @@NESTLEVEL
de 32
. Il peut être défini dans la requête avec OPTION (MAXRECURSION N)
par défaut 100
et 0
signifiant illimité.