Wie man gespeicherte SQL-Prozeduren verwenden

Gespeicherte Prozeduren befinden sich in der Datenbank auf dem Server und nicht auf dem Client ausgeführt werden - wo alle Verfahren befindet wurden vor SQL / PSM. Nachdem Sie eine gespeicherte Prozedur definieren, können Sie es mit einem aufrufen ANRUF Erklärung. Halten der Prozedur auf dem Server und nicht auf dem Client-Netzwerkverkehr reduziert, wodurch die Leistung beschleunigt wird. Der einzige Verkehr, der vom Client übergeben muss der Server das ist ANRUF Erklärung.

Sie können dieses Verfahren auf folgende Weise erstellen:

EXEC sqlCreate VERFAHREN ChessMatchScore (INSCORE CHAR (3), führen OUT CHAR (10)) BEGIN ATOMICCASE scoreWHEN '1-0' THENSET Ergebnis = 'whitewins' -Wenn '0-1' THENSET = 'blackwins' -ELSESET Ergebnis führen = ' zeichnen '-END caseend -

Nachdem Sie eine gespeicherte Prozedur wie in diesem Beispiel erstellt haben, können Sie es mit einem aufrufen ANRUF Anweisung ähnlich der folgenden Aussage:

CALL-ChessMatchScore ( '1-0',: Ergebnis) -

Der erste argumentis einen Eingabeparameter, die der zugeführt wird, ChessMatchScore Verfahren. Das zweite Argument ist ein Embedded-Variable, die den Wert für den Ausgabeparameter zugewiesen akzeptiert, dass die ChessMatchScore Prozedur verwendet das Ergebnis an die aufrufende Routine zurück. In diesem Fall kehrt 'Weiß, gewinnt'.

SQL: 2011 wurde eine Reihe von Verbesserungen, um gespeicherte Prozeduren hinzugefügt. Die erste davon ist die Einführung der benannten Argumente.

Hier ist das Äquivalent des vorhergehenden Anrufs, mit benannten Argumente:

CALL-ChessMatchScore (Ergebnis =>: Ergebnis, score => '1-0') -

Da die Argumente genannt werden, können sie ohne die Gefahr, sie in beliebiger Reihenfolge geschrieben werden verwechselt.

Die zweite Erweiterung hinzugefügt in SQL: 2011 ist der Zusatz von Standard-Eingabeargumente. Sie können ein Standardargument für den Eingabeparameter angeben. Nachdem Sie das tun, müssen Sie nicht einen Eingabewert in die angeben ANRUF Anweisung- der Standardwert angenommen. (Natürlich würden Sie wollen, dies nur tun, wenn der Standardwert in der Tat waren die Wert, den Sie dem Verfahren schicken wollte.)

Hier ist ein Beispiel für diese Nutzung:

EXEC sqlCreate VERFAHREN ChessMatchScore (INSCORE CHAR (3) DEFAULT '1-0', führen CHAR OUT (10)) '1-0' ATOMICCASE scoreWHEN BEGIN THENSET = 'whitewins' -Wenn '0-1' führen THENSET = 'blackwins führen '-ELSESET Ergebnis =' zeichnen '-END caseend -

Sie können nun diese Prozedur aufrufen thusly mit dem Standardwert:

CALL-ChessMatchScore (: Ergebnis) -

Natürlich würden Sie dies nur tun, wenn der Standardwert in der Tat war der Wert, den Sie dem Verfahren schicken wollte.

Menü