Heim  >  Artikel  >  php教程  >  Beispiel für Schritte zur Verwendung des SQL Server-Cursors (Cursor erstellen, Cursor schließen)

Beispiel für Schritte zur Verwendung des SQL Server-Cursors (Cursor erstellen, Cursor schließen)

高洛峰
高洛峰Original
2016-12-14 11:52:231167Durchsuche

Ein Cursor ist eine auf dem DBMS-Server gespeicherte Datenbankabfrage. Es handelt sich nicht um eine SELECT-Anweisung, sondern um die von der Anweisung abgerufene Ergebnismenge. Nachdem der Cursor gespeichert wurde, kann die Anwendung nach Bedarf einen Bildlauf durchführen oder die darin enthaltenen Daten durchsuchen.

Cursor verwenden

Schritte zur Verwendung von Cursorn:

Bevor Sie einen Cursor verwenden, müssen Sie ihn deklarieren (definieren). Diese Prozedur ruft die Daten nicht wirklich ab, sondern definiert lediglich die zu verwendende SELECT-Anweisung und die Cursoroptionen.

Nach der Deklaration muss der Cursor zur Verwendung geöffnet werden. Dieser Prozess verwendet die zuvor definierte SELECT-Anweisung, um die Daten tatsächlich abzurufen.

Für einen mit Daten gefüllten Cursor rufen Sie nach Bedarf Zeilen ab.

Wenn Sie die Verwendung des Cursors beenden, müssen Sie den Cursor schließen und, wenn möglich, loslassen (abhängig vom jeweiligen DBMS).

Nachdem ein Cursor deklariert wurde, kann er beliebig oft geöffnet und geschlossen werden. Während der Cursor geöffnet ist, können Abrufvorgänge so oft wie nötig ausgeführt werden.

Erstellen Sie einen Cursor

Verwenden Sie DECLARE, um den Cursor in SQL Server zu benennen, und definieren Sie die entsprechende SELECT-Anweisung mit WHERE und anderen Klauseln nach Bedarf. Das Beispiel lautet wie folgt:

Der Code lautet wie folgt:

DECLARE CustCursor CURSOR
FOR
SELECT * FROM Customers
WHERE cust_email IS NULL

Cursor verwenden

Verwenden Sie die OPEN CURSOR-Anweisung, um den Cursor zu öffnen, und verwenden Sie die FETCH-Anweisung, um auf die Cursordaten zuzugreifen. FETCH gibt an, welche Zeilen abgerufen werden sollen, wo sie abgerufen werden sollen und wo sie abgelegt werden sollen (als Variablennamen). Hier ist ein Beispiel für die Verwendung eines Cursors in SQL Server:

Der Code lautet wie folgt:

DECLARE @cust_id CHAR(10),
@cust_name CHAR(50),
@cust_address CHAR(50),
@cust_city CHAR(50),
@cust_state CHAR(5),
@cust_zip CHAR(10),
@cust_country CHAR(50),
@cust_contact CHAR(50),
@cust_email CHAR(255)
OPEN CustCursor
FETCH NEXT FROM CustCursor
INTO @cust_id, @cust_name, @cust_address,
@cust_city, @cust_state, @cust_zip,
@cust_country, @cust_contact, @cust_email
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM CustCursor
INTO @cust_id, @cust_name, @cust_address,
@cust_city, @cust_state, @cust_zip,
@cust_country, @cust_contact, @cust_email
...
END
CLOSE CustCursor

In diesem Beispiel wird für jede abgerufene Spalte eine Variable deklariert, und die FETCH-Anweisung ruft eine Zeile ab und speichert die Werte in diesen Variablen. Verwenden Sie eine WHILE-Schleife, um jede Zeile zu verarbeiten. Die Bedingung WHILE @@FETCH_STATUS = 0 beendet die Verarbeitung (beendet die Schleife), wenn keine weiteren Zeilen abgerufen werden können. In diesem Beispiel wird keine spezifische Verarbeitung durchgeführt. Im tatsächlichen Code sollte der Platzhalter ... durch spezifischen Verarbeitungscode ersetzt werden.

Cursor schließen

Cursor in SQL Server schließen:

Der Code lautet wie folgt:

CLOSE CustCursor
DEALLOCATE CURSOR CustCursor

Die CLOSE-Anweisung wird zum Schließen verwendet den Cursor. Sobald der Cursor geschlossen ist, kann er nicht mehr verwendet werden, ohne ihn erneut zu öffnen. Wenn Sie es zum zweiten Mal verwenden, müssen Sie es nicht erneut deklarieren. Öffnen Sie es einfach mit OPEN.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn