Heim >Datenbank >MySQL-Tutorial >Wie durchläuft man SQL Server-Datensätze mithilfe von Cursorn?
Schleifen durch Datensätze in SQL Server
Schleifenabfragen werden häufig zum Abrufen und Verarbeiten von Daten aus Datenbanktabellen verwendet. In dieser Anleitung wird gezeigt, wie man mithilfe von T-SQL und Cursorn in SQL Server eine Schleife durch eine Reihe von Datensätzen durchläuft.
Erstellen eines Cursors
Um eine Schleife durch eine Menge zu durchlaufen Um eine Anzahl von Datensätzen zu erstellen, müssen Sie zunächst einen Cursor erstellen. Ein Cursor ist ein temporärer Zeiger, der zum Durchlaufen der von einer Abfrage zurückgegebenen Zeilen verwendet werden kann. Der folgende Code definiert einen Cursor namens @MyCursor:
DECLARE @MyCursor CURSOR;
Abfrage einrichten
Als nächstes müssen Sie die Abfrage einrichten, die die von Ihnen abgerufenen Daten abruft durchschleifen möchte. In Ihrem Beispiel haben Sie eine Abfrage, die die obersten 1000 Datensätze aus einer Tabelle auswählt, in der StatusID gleich 7 ist. Sie können diese Abfrage verwenden, um den Cursor zu füllen:
SET @MyCursor = CURSOR FOR select top 1000 YourField from dbo.table where StatusID = 7
Abrufen und Verarbeiten von Datensätzen
Sobald der Cursor erstellt und gefüllt ist, können Sie die Datensätze Zeile für Zeile in eine lokale Variable abrufen, z @MyField:
OPEN @MyCursor FETCH NEXT FROM @MyCursor INTO @MyField
Die FETCH NEXT-Anweisung ruft die nächste Zeile vom Cursor ab und weist ihren Wert der angegebenen Variablen zu.
Schleifenbedingung
Um eine Schleife zu erstellen, benötigen Sie eine Bedingung, die bestimmt, wann das Abrufen von Datensätzen beendet werden soll. In diesem Fall können Sie die Systemvariable @@FETCH_STATUS verwenden, die den Status des Cursors zurückgibt:
WHILE @@FETCH_STATUS = 0 BEGIN
Solange der Wert von @@FETCH_STATUS 0 ist, wird die Schleife weiter ausgeführt. Wenn alle Datensätze abgerufen wurden, wird @@FETCH_STATUS auf -1 gesetzt und die Schleife wird beendet.
Verarbeitungslogik
Innerhalb der Schleife können Sie Ihre ausführen gewünschte Logik für die abgerufenen Daten. Sie könnten beispielsweise den Wert von YourField auf der Konsole ausdrucken oder einen zugehörigen Datensatz in einer anderen Tabelle aktualisieren.
/* YOUR ALGORITHM GOES HERE */
Schließen des Cursors
Nachdem alle Datensätze dies getan haben verarbeitet wurde, sollten Sie den Cursor schließen und die Zuordnung aufheben, um Systemressourcen freizugeben:
CLOSE @MyCursor; DEALLOCATE @MyCursor;
Indem Sie diese Schritte befolgen, können Sie einen Satz problemlos durchlaufen von Datensätzen in SQL Server und führen Sie die erforderlichen Vorgänge aus.
Das obige ist der detaillierte Inhalt vonWie durchläuft man SQL Server-Datensätze mithilfe von Cursorn?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!