Grundlagen der gespeicherten Prozeduren

Gespeicherte Prozeduren in Microsoft SQL Server gleichen den Prozeduren in anderen Programmiersprachen bezüglich der folgenden Merkmale und Fähigkeiten:

  • Annehmen von Eingabeparametern und Zurückgeben mehrerer Werte in Form von Ausgabeparametern an die aufrufende Prozedur oder den aufrufenden Batch.
  • Aufnehmen von Programmierungsanweisungen, die Operationen in der Datenbank ausführen, einschließlich des Aufrufens anderer Prozeduren.
  • Zurückgeben eines Statuswertes an eine aufrufende Prozedur oder einen aufrufenden Batch, der Erfolg oder Fehlschlagen (sowie die Ursache für das Fehlschlagen) anzeigt.

Sie können die EXECUTE-Anweisung von Transact-SQL verwenden, um eine gespeicherte Prozedur auszuführen. Gespeicherte Prozeduren unterscheiden sich insofern von Funktionen, als sie keine Werte anstelle ihrer Namen zurückgeben und nicht direkt in einem Ausdruck verwendet werden können.

Das Verwenden gespeicherter Prozeduren in SQL Server anstelle von Transact-SQL-Programmen, die lokal auf Clientcomputern gespeichert sind, bietet die folgenden Vorteile:

  • Registrierung der gespeicherten Prozeduren auf dem Server.
  • Sicherheitsattribute (z. B. Berechtigungen) und Besitzverkettungen sowie mögliches Anfügen von Zertifikaten.
    Benutzern können Berechtigungen erteilt werden, gemäß derer sie eine gespeicherte Prozedur ausführen können, ohne dass sie direkte Berechtigungen für die Objekte besitzen müssen, auf die in der Prozedur verwiesen wird.
  • Verbesserung der Sicherheit Ihrer Anwendung.
    Mithilfe von parametrisierten gespeicherten Prozeduren können Sie Ihre Anwendung vor SQL Injection-Angriffen schützen. Weitere Informationen finden Sie unter SQL Injection.
  • Modulare Programmierung.
    Sie können die Prozedur einmal erstellen und beliebig oft in ihrem Programm aufrufen. Auf diese Weise kann die Verwaltbarkeit Ihrer Anwendung verbessert werden, und Anwendungen können auf einheitliche Weise auf die Datenbank zugreifen.
  • Benannter Code, der eine verzögerte Bindung ermöglicht.
    Auf diese Weise entsteht eine Dereferenzierung, die die Codeentwicklung vereinfacht.
  • Reduzierung des Netzwerkverkehrs.
    Ein Vorgang, der Hunderte von Zeilen mit Transact-SQL-Code erfordert, kann mithilfe einer einzigen Anweisung durchgeführt werden, die den Code in einer Prozedur ausführt, anstatt Hunderte von Codezeilen über das Netzwerk senden zu müssen.

Siehe auch

Konzepte

Typen von gespeicherten Prozeduren

Andere Ressourcen

Grundlegendes zu gespeicherten Prozeduren

Hilfe und Informationen

Informationsquellen für SQL Server 2005