Anwendungen mit SQL Server entwickeln
Gespeicherte Prozeduren und Trigger schreiben
Gespeicherte Prozeduren und Trigger sind eine Reihe von Transact SQL-Abfrageanweisungen, die von Benutzern erstellt werden und sich auf dem Server befinden. Trigger werden vom System unter bestimmten Bedingungen ausgeführt. Gespeicherte Prozeduren können die Anwendungsleistung verbessern. Wenn ein Client-Programm auf Daten zugreifen muss, muss es im Allgemeinen fünf Schritte durchlaufen, um auf die Daten zuzugreifen:
1) Die Abfrageanweisung wird an den Server gesendet.
2) Der Server kompiliert SQL-Code.
3) Optimieren Sie den Ausführungsplan generierter Abfragen.
4) Die Daten-Engine führt die Abfrage aus.
5) Das Ergebnis wird an das Client-Programm zurückgesendet.
Gespeicherte Prozeduren werden bei ihrer Erstellung kompiliert. Wenn die gespeicherte Prozedur zum ersten Mal ausgeführt wird, generiert SQL Server den Abfrageausführungsplan und speichert ihn für die zukünftige Verwendung. Wenn Sie eine Anfrage über eine gespeicherte Prozedur stellen, sind die oben genannten Schritte 2 und 3 nicht mehr erforderlich, was die Systemleistung erheblich verbessern kann. Verbessert die Leistung bereits bei Schritt 1. Denn die zu diesem Zeitpunkt an den Server gesendete Anweisung ist nur eine EXECUTE-Anweisung einer gespeicherten Prozedur und keine große und komplexe Abfrage. Diese Funktion reduziert den Netzwerkverkehr.
Neben Leistungsverbesserungen bieten gespeicherte Prozeduren auch den Komfort einer zentralen Wartung von Anwendungen. Wenn Sie die Abfrage in Ihre Anwendung einbetten. Wenn Änderungen an der Abfrage vorgenommen werden müssen, muss die Anwendung neu kompiliert und für alle Clients erneut veröffentlicht werden. In einer gespeicherten Prozedur sind Änderungen für den Benutzer transparent; es ist lediglich eine Neukompilierung der gespeicherten Prozedur auf dem Server erforderlich.
Gespeicherte Prozeduren stellen auch einen Sicherheitsmechanismus bereit. Obwohl der Benutzer möglicherweise nicht über die Berechtigung verfügt, die Befehle in der gespeicherten Prozedur auszuführen, verfügt er möglicherweise über die Berechtigung, die gespeicherte Prozedur selbst auszuführen. Manchmal gewähren Systemadministratoren Benutzern keine Datenänderungsrechte (UPDATE, INSERT und DELETE). Die erstellten gespeicherten Prozeduren können diese Vorgänge ausführen. Natürlich muss der Benutzer die Berechtigung haben, die gespeicherte Prozedur auszuführen.
Eine gespeicherte Prozedur erstellen
Gespeicherte Prozeduren können die folgenden Zwecke erreichen:
· Mit Parametern.
· Statuswert zurückgeben.
· Rufen Sie andere gespeicherte Prozeduren auf.
· Wird auf dem Remote-Server ausgeführt.
Die gespeicherte Prozedur hat einen Eintrag in der Systemtabelle „sysobjects“, ihr Typ ist „P“. Der Text der gespeicherten Prozedur wird in der Systemtabelle „syscomments“ gespeichert. Um eine gespeicherte Prozedur zu erstellen, verwenden Sie den Transact SQL-Befehl CREATE PROCEDURE.
Zum Beispiel:
USE pubs
GO
CREATE PROCEDURE ap_GetAuthorsForPublisher
AS
SELECT a.au _lname,a.au_fname
FROM Authors a, titleauthor ta, Titel t , Verlage p
WHERE a.au_id = ta.Au_id
AND ta.Title_id = t.title_id
AND t.pub_id = p.pub_id
AND p.pub_name = 'New Moon Books '
GO
Die Syntax der CREATE PROCEDURE-Anweisung lautet wie folgt:
CREATE PROC[DURE] procedure_name [;number]
[WITH { RECOMPILE |. ENCRYPTION}]
[ ZUR REPLIKATION] Durch die Gruppierung werden alle Prozeduren durch die Drop-Prozedur-Anweisung in einer Gruppe zusammengefasst.
@parameter_name gibt den Namen des Parameters an.
RECOMPILE bedeutet, dass bei jeder Ausführung des Prozesses eine Kompilierung erforderlich ist.
ENCRYPTION gibt an, dass der Text des Prozesses in der Tabelle „syscomments“ verschlüsselt werden soll.
FOR REPLICATION zeigt an, dass der Prozess auf dem übermittelnden Server nicht ausgeführt werden kann.
Parameter an gespeicherte Prozeduren übergeben
Gespeicherte Prozeduren können Parameter akzeptieren.
Hinweis: Die Parameter des Prozesses können auch benutzerdefinierte Datentypen sein.
Geben Sie dem Parameter einen Standardwert
Benutzer können auch Standardwerte für Parameter in gespeicherten Prozeduren definieren. Wenn erforderliche Parameter zur Ausführungszeit nicht bereitgestellt werden, verwendet das System Standardwerte als Parameter. Wenn zur Ausführungszeit weder ein Standardwert definiert ist noch Parameter bereitgestellt werden, gibt SQL Server einen Fehler zurück. Es hat sich bewährt, Standardwerte in gespeicherten Prozeduren zu definieren und mithilfe einer Logik zu erkennen, ob Parameter angegeben sind, und entsprechende Maßnahmen zu ergreifen.
Zum Beispiel:
USE pubs
GO
CREATE PROCEDURE ap_GetAuthorsForPublisher
@PublisherName varchar(40) = 'New Moon Books'
AS
SELECT a.au_lname , a.au_fname
VON Autoren a, Titelautor ta, Titel t, Verlage p
WO a.au_id = ta.Au_id
UND ta.Title_id = t.title_id
UND t.pub_id = p . pub_id
AND p.pub_name = @PublisherName
GO
Das Obige ist der Inhalt von Erste Schritte mit SQL Server 7.0 (V). Weitere verwandte Inhalte finden Sie im PHP-Chinesisch Website (www.php.cn)!