Eu posso entender que quero evitar ter que usar um cursor devido à sobrecarga e inconveniência, mas parece que há alguma séria fobia-cursor acontecendo, onde as pessoas estão se esforçando para evitar o uso de um.
Por exemplo, uma pergunta foi feita como fazer algo obviamente trivial com um cursor e a resposta aceita proposta usando uma consulta recursiva da expressão comum da tabela (CTE) com uma função personalizada recursiva, mesmo que isso limite o número de linhas que poderiam ser processadas para 32 (devido ao limite de chamada de função recursiva no servidor sql). Isso me parece uma solução terrível para a longevidade do sistema, para não mencionar um esforço tremendo apenas para evitar o uso de um cursor simples.
Qual é a razão para esse nível de ódio insano? Alguma 'autoridade notável' emitiu uma fatwa contra cursores? Algum mal indescritível espreita no coração dos cursores que corrompe a moral das crianças ou algo assim?
Pergunta da Wiki, mais interessada na resposta do que no representante.
Informações Relacionadas:
Cursores de avanço rápido do SQL Server
EDIT: deixe-me ser mais preciso: entendo que cursores não devem ser usados em vez de operações relacionais normais ; isso é óbvio. O que eu não entendo são as pessoas que estão se esforçando para evitar cursores como eles têm cooties ou algo assim, mesmo quando um cursor é uma solução mais simples e / ou mais eficiente. É o ódio irracional que me confunde, não as eficiências técnicas óbvias.
32
é absurda. Presumivelmente, você está pensando em gatilhos recursivos e no máximo @@NESTLEVEL
de 32
. Pode ser definido na consulta OPTION (MAXRECURSION N)
com padrão 100
e 0
significado ilimitado.