Was ist eine "gespeicherte Prozedur" und wie funktionieren sie?
Wie setzt sich eine gespeicherte Prozedur zusammen (Dinge müssen jeweils gespeicherte Prozeduren sein)?
Was ist eine "gespeicherte Prozedur" und wie funktionieren sie?
Wie setzt sich eine gespeicherte Prozedur zusammen (Dinge müssen jeweils gespeicherte Prozeduren sein)?
Gespeicherte Prozeduren sind ein Stapel von SQL-Anweisungen, die auf verschiedene Arten ausgeführt werden können. Die meisten wichtigen DBMs unterstützen gespeicherte Prozeduren. jedoch nicht alle. Sie müssen anhand Ihrer speziellen DBMS-Hilfedokumentation nach Einzelheiten suchen. Da ich mit SQL Server am besten vertraut bin, werde ich dies als Beispiel verwenden.
Um eine gespeicherte Prozedur zu erstellen, ist die Syntax ziemlich einfach:
CREATE PROCEDURE <owner>.<procedure name>
<Param> <datatype>
AS
<Body>
Also zum Beispiel:
CREATE PROCEDURE Users_GetUserInfo
@login nvarchar(30)=null
AS
SELECT * from [Users]
WHERE ISNULL(@login,login)=login
Ein Vorteil gespeicherter Prozeduren besteht darin, dass Sie die Datenzugriffslogik an einem einzigen Ort zentralisieren können, der dann für Datenbankadministratoren einfach zu optimieren ist. Gespeicherte Prozeduren haben auch den Sicherheitsvorteil, dass Sie einer gespeicherten Prozedur Ausführungsrechte gewähren können, der Benutzer jedoch keine Lese- / Schreibberechtigungen für die zugrunde liegenden Tabellen haben muss. Dies ist ein guter erster Schritt gegen die SQL-Injection.
Gespeicherte Prozeduren haben Nachteile, im Grunde die Wartung, die mit Ihrer grundlegenden CRUD- Operation verbunden ist. Angenommen, Sie haben für jede Tabelle ein Einfügen, Aktualisieren, Löschen und mindestens eine Auswahl basierend auf dem Primärschlüssel. Dies bedeutet, dass jede Tabelle über 4 Prozeduren verfügt. Nehmen Sie jetzt eine Datenbank mit einer anständigen Größe von 400 Tabellen und Sie haben 1600 Prozeduren! Und das setzt voraus, dass Sie keine Duplikate haben, die Sie wahrscheinlich haben werden.
Hier hat die Verwendung eines ORM oder einer anderen Methode zum automatischen Generieren Ihrer grundlegenden CRUD-Operationen eine Menge Vorteile.
ORM
wieEntity Framework
zu tunCRUD
Operationen?Eine gespeicherte Prozedur besteht aus einer Reihe vorkompilierter SQL-Anweisungen, mit denen eine spezielle Aufgabe ausgeführt wird.
Beispiel: Wenn ich eine
Employee
Tabelle habeZuerst rufe ich die
Employee
Tabelle ab:So führen Sie die Prozedur unter SQL Server aus:
Zweitens füge ich den Wert in die Mitarbeitertabelle ein
So führen Sie die parametrisierte Prozedur unter SQL Server aus:
Beispiel:
@Name Varchar(30)
In der
Employee
Tabelle muss dieName
Spaltengröße seinvarchar(30)
.quelle
Eine gespeicherte Prozedur ist eine Gruppe von SQL-Anweisungen, die erstellt und in der Datenbank gespeichert wurden. Eine gespeicherte Prozedur akzeptiert Eingabeparameter, sodass eine einzelne Prozedur von mehreren Clients mit unterschiedlichen Eingabedaten über das Netzwerk verwendet werden kann. Eine gespeicherte Prozedur reduziert den Netzwerkverkehr und erhöht die Leistung. Wenn wir eine gespeicherte Prozedur ändern, erhalten alle Clients die aktualisierte gespeicherte Prozedur.
Beispiel für die Erstellung einer gespeicherten Prozedur
Vorteile der Verwendung gespeicherter Prozeduren
Eine gespeicherte Prozedur ermöglicht eine modulare Programmierung.
Sie können die Prozedur einmal erstellen, in der Datenbank speichern und in Ihrem Programm beliebig oft aufrufen.
Eine gespeicherte Prozedur ermöglicht eine schnellere Ausführung.
Wenn für den Vorgang eine große Menge an SQL-Code erforderlich ist, der wiederholt ausgeführt wird, können gespeicherte Prozeduren schneller sein. Sie werden bei ihrer ersten Ausführung analysiert und optimiert, und eine kompilierte Version der gespeicherten Prozedur verbleibt zur späteren Verwendung in einem Speichercache. Dies bedeutet, dass die gespeicherte Prozedur nicht bei jeder Verwendung erneut repariert und optimiert werden muss, was zu viel schnelleren Ausführungszeiten führt.
Eine gespeicherte Prozedur kann den Netzwerkverkehr reduzieren.
Eine Operation, die Hunderte von Zeilen Transact-SQL-Code erfordert, kann über eine einzelne Anweisung ausgeführt werden, die den Code in einer Prozedur ausführt, anstatt Hunderte von Codezeilen über das Netzwerk zu senden.
Gespeicherte Prozeduren bieten eine bessere Sicherheit für Ihre Daten
Benutzern kann die Berechtigung zum Ausführen einer gespeicherten Prozedur erteilt werden, auch wenn sie nicht über die Berechtigung verfügen, die Anweisungen der Prozedur direkt auszuführen.
In SQL Server gibt es verschiedene Arten von gespeicherten Prozeduren:
System -stored Verfahren sind in der Master - Datenbank und diesen Start mit einem gespeicherten
sp_
Präfix. Mit diesen Verfahren können verschiedene Aufgaben ausgeführt werden, um SQL Server-Funktionen für externe Anwendungsaufrufe in den Systemtabellen zu unterstützenBeispiel: sp_helptext [StoredProcedure_Name]
Benutzerdefinierte gespeicherte Prozeduren werden normalerweise in einer Benutzerdatenbank gespeichert und dienen normalerweise zum Ausführen der Aufgaben in der Benutzerdatenbank. Während der Codierung dieser Prozeduren wird das Präfix nicht verwendet,
sp_
da bei Verwendung dessp_
Präfixes zuerst die Master-Datenbank überprüft wird und dann die benutzerdefinierte Datenbank aufgerufen wird.Erweiterte gespeicherte Prozeduren sind Prozeduren, die Funktionen aus DLL-Dateien aufrufen. Heutzutage sind erweiterte gespeicherte Prozeduren veraltet, da es besser ist, die Verwendung erweiterter gespeicherter Prozeduren zu vermeiden.
quelle
Im Allgemeinen ist eine gespeicherte Prozedur eine "SQL-Funktion". Sie haben:
Dies ist ein T-SQL-fokussiertes Beispiel. Gespeicherte Prozeduren können die meisten SQL-Anweisungen ausführen, skalare und tabellenbasierte Werte zurückgeben und gelten als sicherer, da sie SQL-Injection-Angriffe verhindern.
quelle
Denken Sie an eine Situation wie diese,
HINWEIS:
quelle
Eine gespeicherte Prozedur wird hauptsächlich verwendet, um bestimmte Aufgaben in einer Datenbank auszuführen. Beispielsweise
quelle
Eine gespeicherte Prozedur ist nichts anderes als eine Gruppe von SQL-Anweisungen, die in einem einzigen Ausführungsplan zusammengefasst sind.
Beispiel: Erstellen einer gespeicherten Prozedur
Eine gespeicherte Prozedur ändern oder modifizieren:
Löschen oder Löschen einer gespeicherten Prozedur:
quelle
Eine gespeicherte Prozedur wird verwendet, um Daten abzurufen, Daten zu ändern und Daten in der Datenbanktabelle zu löschen. Sie müssen nicht jedes Mal einen vollständigen SQL-Befehl schreiben, wenn Sie Daten in eine SQL-Datenbank einfügen, aktualisieren oder löschen möchten.
quelle
Eine gespeicherte Prozedur ist eine vorkompilierte Gruppe von einer oder mehreren SQL-Anweisungen, die eine bestimmte Aufgabe ausführen.
Eine gespeicherte Prozedur sollte eigenständig mit ausgeführt werden
EXEC
Eine gespeicherte Prozedur kann mehrere Parameter zurückgeben
Eine gespeicherte Prozedur kann verwendet werden, um eine Transaktion zu implementieren
quelle
"Was ist eine gespeicherte Prozedur?" Wird hier bereits in anderen Beiträgen beantwortet. Was ich posten werde, ist eine weniger bekannte Art, gespeicherte Prozeduren zu verwenden. Es ist
grouping stored procedures
odernumbering stored procedures
.Syntaxreferenz
; number
wie diesBeispiel
Verwenden
Ergebnis
Ein weiterer Versuch
Ergebnis
Referenzen :
VORSICHT
quelle
Eine gespeicherte Prozedur ist eine benannte Sammlung von SQL-Anweisungen und prozeduraler Logik, dh kompiliert, verifiziert und in der Serverdatenbank gespeichert. Eine gespeicherte Prozedur wird normalerweise wie andere Datenbankobjekte behandelt und über den Serversicherheitsmechanismus gesteuert.
quelle
In einem DBMS ist eine gespeicherte Prozedur eine Reihe von SQL-Anweisungen mit einem zugewiesenen Namen, die in kompilierter Form in der Datenbank gespeichert sind, damit sie von einer Reihe von Programmen gemeinsam genutzt werden können.
Die Verwendung einer gespeicherten Prozedur kann hilfreich sein
Bereitstellung eines kontrollierten Zugriffs auf Daten (Endbenutzer können nur Daten eingeben oder ändern, aber keine Prozeduren schreiben)
Gewährleistung der Datenintegrität (Daten würden auf konsistente Weise eingegeben) und
Verbessert die Produktivität (die Anweisungen einer gespeicherten Prozedur müssen nur einmal geschrieben werden)
quelle
für einfache,
Gespeicherte Prozeduren sind gespeicherte Programme . Ein Programm / eine Funktion, die in einer Datenbank gespeichert sind.
Jedes gespeicherte Programm enthält einen Text, der aus einer SQL-Anweisung besteht. Diese Anweisung kann eine zusammengesetzte Anweisung sein, die aus mehreren Anweisungen besteht, die durch Semikolon (;) getrennt sind.
quelle
In SQL Server gespeicherte Prozeduren können Eingabeparameter akzeptieren und mehrere Werte von Ausgabeparametern zurückgeben. In SQL Server programmieren Anweisungen für gespeicherte Prozeduren, um Operationen in der Datenbank auszuführen und einen Statuswert an eine aufrufende Prozedur oder einen Stapel zurückzugeben.
Die Vorteile der Verwendung gespeicherter Prozeduren in SQL Server
Sie ermöglichen eine modulare Programmierung. Sie ermöglichen eine schnellere Ausführung. Sie können den Netzwerkverkehr reduzieren. Sie können als Sicherheitsmechanismus verwendet werden.
Hier ist ein Beispiel für eine gespeicherte Prozedur, die einen Parameter verwendet, eine Abfrage ausführt und ein Ergebnis zurückgibt. Insbesondere akzeptiert die gespeicherte Prozedur die BusinessEntityID als Parameter und verwendet diese, um mit dem Primärschlüssel der Tabelle HumanResources.Employee übereinzustimmen und den angeforderten Mitarbeiter zurückzugeben.
Ich habe das von essential.com gelernt ... es ist sehr nützlich.
quelle
Die gespeicherte Prozedur hilft Ihnen beim Erstellen von Code auf dem Server. Sie können Parameter übergeben und die Ausgabe finden.
quelle
In gespeicherten Prozeduren werden Anweisungen nur einmal geschrieben und reduzieren den Netzwerkverkehr zwischen Clients und Servern. Wir können auch SQL Injection Attacks vermeiden.
quelle