Курсорите са механизъм за изрично изброяване на редовете на набор от резултати, вместо да го извличат като такъв.
Въпреки това, въпреки че може да са по-удобни за използване от програмисти, свикнали да пишат While Not RS.EOF Do ...
, те обикновено са нещо, което трябва да се избягва в рамките на съхранените процедури на SQL Server, ако изобщо е възможно - ако можете да напишете заявка без използването на курсори, вие давате на оптимизатора много по-добър шанс да намери бърз начин да я приложи.
Честно казано, никога не съм намирал реалистичен случай на използване на курсор, който не може да бъде избегнат, с изключение на няколко административни задачи, като преминаване през всички индекси в каталога и повторното им изграждане. Предполагам, че те могат да имат някои приложения при генериране на отчети или циркулярни съобщения, но вероятно е по-ефективно да се извърши работата, подобна на курсора, в приложение, което общува с базата данни, оставяйки машината на базата данни да прави това, което прави най-добре - манипулиране на набори.