Was ist der Cursor in SQL Server?
Möchte ich einen Datenbank-cursor; zuerst muss ich verstehen, was seine Verwendung und syntax sind, und in dem Szenario, das wir verwenden können, das in gespeicherten Prozeduren? Gibt es unterschiedliche Schreibweisen für die verschiedenen Versionen von SQL-Server?
Wann ist es erforderlich?
InformationsquelleAutor der Frage Red Swan | 2010-11-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Cursor sind ein Mechanismus explizit Durchlaufen der Zeilen einer Ergebnismenge, sondern als das abrufen als solche.
Jedoch, während Sie möglicherweise mehr Komfort für Programmierer zu verwenden gewohnt zu schreiben
While Not RS.EOF Do ...
werden Sie in der Regel eine Sache, die vermieden werden, die in SQL Server gespeicherten Prozeduren erstellen, wenn überhaupt möglich-wenn Sie können eine Abfrage schreiben, ohne das verwenden von Cursorn, Sie geben dem optimizer eine viel bessere chance zu finden einen schnellen Weg, um es zu implementieren.In aller Ehrlichkeit, ich habe nie einen realistischen Anwendungsfall für einen cursor, der sich nicht vermeiden ließ, mit Ausnahme von einigen administrativen Aufgaben, wie z.B. als Schleife über alle Indizes der Katalog-und Umbau. Ich nehme an, Sie haben könnte, einige Nutzer in der Generierung von berichten oder Serienbriefen, aber es ist wahrscheinlich effizienter, das zu tun der cursor-wie bei der Arbeit in einer Anwendung kommuniziert mit der Datenbank, sodass die Datenbank-engine zu tun, was es am besten kann -- set-manipulation.
InformationsquelleAutor der Antwort Jeffrey Hantin
Beispiel für cursor:
AUSGABE:
InformationsquelleAutor der Antwort rohit vyas
Cursor kann verwendet werden zum abrufen von Daten zeilenweise.seine Handlung wie eine Schleifenanweisung(ie while-oder for-Schleife).
Verwenden Cursor in SQL-Prozeduren, müssen Sie Folgendes tun:
1.Deklarieren Sie einen cursor definiert, dass ein Ergebnis festgelegt.
2.Öffnen Sie den cursor zu etablieren, die das ResultSet.
3.Holen Sie die Daten in lokale Variablen, die bei Bedarf aus dem cursor eine Zeile zu einem Zeitpunkt.
4.Schließen Sie den cursor wenn Sie fertig sind.
ex:
InformationsquelleAutor der Antwort Murugan
Ich würde behaupten, Sie möchten möglicherweise verwenden Sie einen cursor, wenn Sie wollen, zu tun, Vergleiche von Merkmalen, die sich auf verschiedenen Zeilen der zurück gesetzt wird, oder wenn Sie wollen, schreiben Sie ein anderes output-row-format als ein standard in bestimmten Fällen. Zwei Beispiele in den Sinn kommen:
War in einem college, wo jedes hinzufügen und löschen einer Klasse hatte seine eigene Zeile in der Tabelle. Vielleicht war es schlechtes design, aber Sie brauchen, zu vergleichen, in der Zeilen, um zu wissen, wie viele hinzufügen und löschen von Zeilen, die Sie hatte, um zu bestimmen, ob die person war in der Klasse oder nicht. Ich kann nicht denken, ein straight forward Weise zu tun, dass nur mit sql.
Weiteres Beispiel ist das schreiben einer Zeitschrift total-Zeile für GL-Zeitschriften. Sie bekommen eine beliebige Anzahl von Lastschriften und Gutschriften in Ihrem Tagebuch, Sie haben viele Zeitschriften in Ihrem rowset zurück, und Sie wollen, schreiben Sie ein Tagebuch total-Zeile jedes mal, wenn Sie fertig sind eine Zeitschrift zu veröffentlichen, es in ein Hauptbuch. Mit einem cursor könnten Sie sagen, wenn Sie mit der linken eine Zeitschrift und begann ein weiteres und-Akkumulatoren, die für Ihre Lastschriften und Gutschriften, und schreiben Sie ein journal Gesamt-Zeile (oder Tabelle einfügen), die war anders als die EC - /Kredit-Linie.
InformationsquelleAutor der Antwort flashgordon