Gespeicherte ProzedurEine gespeicherte Prozedur (englisch stored procedure) ist eine Anweisung in Datenbankmanagementsystemen, mit der ganze Abläufe von Anweisungen vom Datenbank-Client aufgerufen werden können. Sie ist somit ein eigenständiger Befehl, der eine Abfolge gespeicherter Befehle ausführt. Gespeicherte Prozeduren werden im Data-Dictionary der jeweiligen Datenbank gespeichert. Mittels gespeicherter Prozeduren können häufiger verwendete Abläufe, die sonst durch viele einzelne Befehle vom Client ausgeführt werden würden, auf das Datenbanksystem ausgelagert und durch einen einzigen Aufruf ( Neben der gewöhnlichen Syntax der Abfragesprache, meist SQL, können in gespeicherten Prozeduren auch zusätzliche Befehle zur Ablaufsteuerung oder Auswertung von Bedingungen hinzugefügt werden. Damit können sie mit Makrosprachen bestimmter Anwendungsprogramme verglichen werden. Oft wird das verwendete SQL um herstellerspezifische Funktionen erweitert. Auch der Einsatz anderer Programmiersprachen wie etwa Java oder C# ist inzwischen teilweise möglich. Gespeicherte Prozeduren tragen dazu bei, die Sicherheit einer Anwendung stark zu erhöhen. Da der Client in der Regel keine
– Christopher Kunz: PHP-Sicherheit (Seite 143)[1] Implementierung
Extended Stored ProcedureExtended Stored Procedure (Abkürzung: XP) ist eine von Microsoft SQL erweiterte Form der Stored procedure. XPs erlauben durch die Verwendung von DLLs komplexere Prozesse auszuführen. Je nach Microsoft SQL-Version sind diverse erweiterte gespeicherte Prozeduren vordefiniert,[5] während Administratoren weitere hinzufügen können.[6] Microsoft hat die Verwendung von XPs inzwischen als deprecated gekennzeichnet, was bedeutet, dass zukünftige Microsoft SQL-Versionen erweiterte Prozeduren nicht mehr unterstützen werden. Microsoft SQL Server 2012 unterstützt XPs allerdings noch. Als Ersatz nennt Microsoft die Verwendung der Laufzeitumgebung Common Language Runtime.[7] BeispieleDie folgende gespeicherte Prozedur in SQL hat zwei Parameter @VorlNr, @PersNr vom Datentyp Integer[8] CREATE PROCEDURE GibVorlesungen
@VorlNr INT,
@PersNr INT
AS
SELECT Vorlesung.VorlNr, Vorlesung.Titel, Professor.PersNr, Professor.Name
FROM Professor INNER JOIN Vorlesung
ON Professor.PersNr = Vorlesung.PersNr
WHERE VorlNr = @VorlNr AND PersNr = @PersNr;
Der Aufruf EXECUTE GibVorlesungen 1001, 15;
könnte folgendes Ergebnis zurückgeben (siehe SQL - Sicht):
Siehe auchLiteratur
Weblinks
Einzelnachweise
Information related to Gespeicherte Prozedur |