Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

A quoi sert un curseur dans SQL Server ?

Les curseurs sont un mécanisme permettant d'énumérer explicitement les lignes d'un ensemble de résultats, plutôt que de le récupérer tel quel.

Cependant, bien qu'ils puissent être plus confortables à utiliser pour les programmeurs habitués à écrire While Not RS.EOF Do ... , ils sont généralement une chose à éviter dans les procédures stockées SQL Server si possible - si vous pouvez écrire une requête sans utiliser de curseurs, vous donnez à l'optimiseur une bien meilleure chance de trouver un moyen rapide de l'implémenter.

En toute honnêteté, je n'ai jamais trouvé de cas d'utilisation réaliste pour un curseur qui ne pouvait être évité, à l'exception de quelques tâches administratives telles que la boucle sur tous les index du catalogue et leur reconstruction. Je suppose qu'ils pourraient avoir des utilisations dans la génération de rapports ou les fusions et publipostages, mais il est probablement plus efficace de faire le travail de type curseur dans une application qui parle à la base de données, laissant le moteur de base de données faire ce qu'il fait le mieux - la manipulation d'ensemble. /P>