Typen von gespeicherten Prozeduren
In Microsoft SQL Server gibt es zahlreiche Typen von gespeicherten Prozeduren. In diesem Thema wird jeder Typ von gespeicherten Prozeduren kurz beschrieben und ein Beispiel für jeden Typ geliefert.
Benutzerdefinierte gespeicherte Prozeduren
Gespeicherte Prozeduren sind Module oder Routinen, die Code für die Wiederverwendung einkapseln. Eine gespeicherte Prozedur kann Eingabeparameter entgegennehmen, tabellarische oder skalare Ergebnisse und Meldungen an den Client zurückgeben, Anweisungen in Datendefinitionssprache (DDL, Data Definition Language) und in Datenbearbeitungssprache (DML, Data Manipulation Language) aufrufen und Ausgabeparameter zurückgeben. In SQL Server 2008 gibt es zwei Typen von gespeicherten Prozeduren: Transact-SQL oder CLR.
Transact-SQL
Eine gespeicherte Transact-SQL-Prozedur ist eine gespeicherte Auflistung von Transact-SQL-Anweisungen, die vom Benutzer angegebene Parameter entgegennehmen und zurückgeben kann. Beispielsweise kann eine gespeicherte Prozedur die Anweisungen enthalten, die zum Einfügen einer neuer Zeile in eine oder mehrere Tabellen auf der Basis der von der Clientanwendung bereitgestellten Informationen erforderlich sind. Oder die gespeicherte Prozedur kann Daten aus der Datenbank an die Clientanwendung zurückgeben. So kann z. B. eine kommerzielle Webanwendung eine gespeicherte Prozedur verwenden, um basierend auf vom Onlinebenutzer angegebenen Suchkriterien Informationen zu bestimmten Produkten zurückzugeben.
CLR
Eine CLR-gespeicherte Anweisung ist ein Verweis auf eine Microsoft .NET Framework CLR-Methode (Common Language Runtime), die vom Benutzer bereitgestellte Parameter entgegennehmen und zurückgeben kann. Sie werden als öffentliche statische Methoden für eine Klasse in einer .NET Framework-Assembly implementiert.Weitere Informationen finden Sie unter CLR-gespeicherte Prozeduren.
Erweiterte gespeicherte Prozeduren
Wichtig |
---|
Diese Funktion wird in zukünftigen Versionen von Microsoft SQL Server nicht mehr bereitgestellt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird. Verwenden Sie stattdessen die CLR-Integration. |
Mit erweiterten gespeicherten Prozeduren können Sie Ihre eigenen externen Routinen in einer Programmiersprache wie C erstellen. Erweiterte gespeicherte Prozeduren sind DLLs, die von einer Instanz von Microsoft SQL Server dynamisch geladen und ausgeführt werden können. Erweiterte gespeicherte Prozeduren werden direkt im Adressbereich einer Instanz von SQL Server ausgeführt, und ihre Programmierung erfolgt mithilfe der SQL Server-API für erweiterte gespeicherte Prozeduren.
Hinweis |
---|
Die CLR-Integration bietet eine robustere und sicherere Alternative zum Schreiben von erweiterten gespeicherten Prozeduren. |
Gespeicherte Systemprozeduren
Viele Verwaltungsfunktionen in SQL Server werden mithilfe einer bestimmten Art von Prozedur durchgeführt, die als gespeicherte Systemprozedur bezeichnet wird.So ist z. B. sys.sp_changedbowner eine gespeicherte Systemprozedur. Gespeicherte Systemprozeduren werden physisch in der Ressourcendatenbank gespeichert und sind mit dem sp_-Präfix versehen. Gespeicherte Systemprozeduren erscheinen logisch im sys-Schema jeder system- und benutzerdefinierten Datenbank. In SQL Server 2008 können GRANT-, DENY- und REVOKE-Berechtigungen auf systemgespeicherte Prozeduren anwenden.Eine vollständige Liste der systemgespeicherten Prozeduren finden Sie unter Systemgespeicherte Prozeduren (Transact-SQL).
SQL Server unterstützt die systemgespeicherten Prozeduren, die eine Schnittstelle von SQL Server zu externen Programmen für verschiedene Wartungsaktivitäten bereitstellen. Diese erweiterten gespeicherten Prozeduren verwenden den xp_-Präfix. Eine vollständige Liste der erweiterten gespeicherten Prozeduren finden Sie unter Allgemeine erweiterte gespeicherte Prozeduren (Transact-SQL).
Siehe auch