Я могу понять желание избежать использования курсора из-за накладных расходов и неудобств, но похоже, что происходит серьезная мания фобии курсора, когда люди идут на все, чтобы избежать необходимости его использовать.
Например, был задан один вопрос, как сделать что-то очевидно тривиальное с курсором, и принятый ответ, предложенный с использованием рекурсивного запроса общего табличного выражения (CTE) с рекурсивной настраиваемой функцией, хотя это ограничивает количество строк, которые могут быть обработаны, до 32 (из-за ограничения рекурсивного вызова функции на сервере sql). Это кажется мне ужасным решением проблемы долговечности системы, не говоря уже о огромных усилиях, направленных на то, чтобы избежать использования простого курсора.
В чем причина такой безумной ненависти? Издал ли какой-нибудь «авторитетный авторитет» фетву против курсоров? Неужели в основе курсоров таится какое-то невыразимое зло, которое развращает нравы детей или что-то в этом роде?
Вопрос вики, больше интересует ответ, чем представитель.
Связанная информация:
Курсоры быстрой перемотки SQL Server
РЕДАКТИРОВАТЬ: позвольте мне быть более точным: я понимаю, что курсоры не должны использоваться вместо обычных операций отношения; это и ежу понятно. Чего я не понимаю, так это то, что люди стараются изо всех сил избегать курсоров, как будто у них есть кути или что-то в этом роде, даже когда курсор является более простым и / или более эффективным решением. Меня сбивает с толку иррациональная ненависть, а не очевидная техническая эффективность.
32
, - ерунда. Предположительно вы думаете о рекурсивных триггерах и максимальном@@NESTLEVEL
из32
. Он может быть установлен в запросе сOPTION (MAXRECURSION N)
со значением по умолчанию100
и0
, что означает неограниченный. - person Martin Smith   schedule 02.11.2012