Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wozu dient ein Cursor in SQL Server?

Cursor sind ein Mechanismus, um die Zeilen einer Ergebnismenge explizit aufzuzählen, anstatt sie als solche abzurufen.

Obwohl sie für Programmierer, die daran gewöhnt sind, While Not RS.EOF Do ... zu schreiben, möglicherweise bequemer zu verwenden sind , sind sie normalerweise etwas, das in gespeicherten SQL Server-Prozeduren nach Möglichkeit vermieden werden sollte -- wenn Sie eine Abfrage ohne die Verwendung von Cursorn schreiben können, geben Sie dem Optimierer eine viel bessere Chance, einen schnellen Weg zu finden, sie zu implementieren.

Ehrlich gesagt habe ich noch nie einen realistischen Anwendungsfall für einen Cursor gefunden, der sich nicht vermeiden ließe, mit Ausnahme einiger administrativer Aufgaben wie dem Durchlaufen aller Indizes im Katalog und deren Neuerstellung. Ich nehme an, sie haben einige Verwendungsmöglichkeiten bei der Berichterstellung oder bei Serienbriefen, aber es ist wahrscheinlich effizienter, die Cursor-ähnliche Arbeit in einer Anwendung zu erledigen, die mit der Datenbank kommuniziert, und die Datenbank-Engine das tun zu lassen, was sie am besten kann – Satzmanipulation.