sql >> Database >  >> RDS >> Sqlserver

Wat is het nut van een cursor in SQL Server?

Cursors zijn een mechanisme om expliciet de rijen van een resultatenset op te sommen, in plaats van deze als zodanig op te halen.

Hoewel ze misschien handiger zijn om te gebruiken voor programmeurs die gewend zijn aan het schrijven van While Not RS.EOF Do ... , ze zijn typisch iets dat vermeden moet worden binnen SQL Server opgeslagen procedures, indien mogelijk -- als u een query kunt schrijven zonder het gebruik van cursors, geeft u de optimizer een veel betere kans om een ​​snelle manier te vinden om het te implementeren.

Eerlijk gezegd heb ik nooit een realistische use case gevonden voor een cursor die niet kon worden vermeden, met uitzondering van een paar administratieve taken zoals het doorlopen van alle indexen in de catalogus en het opnieuw opbouwen ervan. Ik veronderstel dat ze misschien wat nut hebben bij het genereren van rapporten of het samenvoegen van mails, maar het is waarschijnlijk efficiënter om het cursorachtige werk te doen in een toepassing die met de database praat, zodat de database-engine kan doen waar hij goed in is:manipulatie instellen.



  1. Waarom ik Oracle BLOB niet kan casten vanuit native Java Blob

  2. Hoe krijg ik BLOB van bestand in PL/SQL?

  3. Vanwege de nulwaarde zijn de gegevens niet weerspiegeld

  4. #1064 -Je hebt een fout in je SQL-syntaxis; controleer de handleiding die overeenkomt met uw MySQL-serverversie