Freigeben über


Anzeigen der Definition einer gespeicherten Prozedur

Sie können die Definition einer gespeicherten Prozedur in SQL Server Management Studio mit Objekt-Explorer-Menüoptionen oder im Abfrage-Editor mit Transact-SQL anzeigen. In diesem Thema wird beschrieben, wie die Definition der Prozedur im Objekt-Explorer und mit einer gespeicherten Systemprozedur, Systemfunktion und der Objektkatalogsicht im Abfrage-Editor angezeigt wird.

  • Vorbereitungen: Sicherheit

  • So zeigen Sie die Definition einer Prozedur unter Verwendung von SQL Server Management Studio, Transact-SQL an

Vorbereitungen

Sicherheit

Berechtigungen

[Nach oben]

  • Gespeicherte Systemprozedur: sp_helptext
    Erfordert die Mitgliedschaft in der public-Rolle. Definitionen von Systemobjekten sind öffentlich sichtbar. Die Definition von Benutzerobjekten ist für den Objektbesitzer sichtbar oder für Berechtigte, die über eine der folgenden Berechtigungen verfügen: ALTER, CONTROL, TAKE OWNERSHIP oder VIEW DEFINITION.

  • Systemfunktion: OBJECT_DEFINITION
    Definitionen von Systemobjekten sind öffentlich sichtbar. Die Definition von Benutzerobjekten ist für den Objektbesitzer sichtbar oder für Berechtigte, die über eine der folgenden Berechtigungen verfügen: ALTER, CONTROL, TAKE OWNERSHIP oder VIEW DEFINITION. Über diese Berechtigungen verfügen implizit Mitglieder der festen Datenbankrollen db_owner, db_ddladmin und db_securityadmin.

  • Objektkatalogsicht: sys.sql_modules
    Die Sichtbarkeit der Metadaten in Katalogsichten ist auf sicherungsfähige Elemente eingeschränkt, bei denen der Benutzer entweder der Besitzer ist oder für die dem Benutzer eine Berechtigung erteilt wurde. Weitere Informationen finden Sie unter Konfigurieren der Sichtbarkeit von Metadaten.

Anzeigen der Definition einer gespeicherten Prozedur

Sie können eine der folgenden Anwendungen verwenden:

  • SQL Server Management Studio

  • Transact-SQL

Verwenden von SQL Server Management Studio

So zeigen Sie die Definition einer Prozedur im Objekt-Explorer an

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Instanz von Database Engine (Datenbankmodul) her, und erweitern Sie dann diese Instanz.

  2. Erweitern Sie Datenbanken, erweitern Sie die Datenbank, zu der die Prozedur gehört, und erweitern Sie dann Programmierbarkeit.

  3. Erweitern Sie Gespeicherte Prozeduren, klicken Sie mit der rechten Maustaste auf die Prozedur, und klicken Sie anschließend auf Skript für gespeicherte Prozeduren als. Klicken Sie dann auf eine der folgenden Optionen: CREATE in, ALTER in oder DROP und CREATE in.

  4. Wählen Sie Neues Abfrage-Editor-Fenster aus. Daraufhin wird die Prozedurdefinition angezeigt.

[Nach oben]

Verwenden von Transact-SQL

So zeigen Sie die Definition einer Prozedur im Abfrage-Editor an

  • Gespeicherte Systemprozedur: sp_helptext

    1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Instanz von Database Engine (Datenbankmodul) her.

    2. Klicken Sie auf der Symbolleiste auf Neue Abfrage.

    3. Geben Sie im Abfragefenster die folgende Anweisung ein, die die gespeicherte Systemprozedur sp_helptext verwendet. Ändern Sie den Datenbanknamen und den Namen der gespeicherten Prozedur so, dass diese auf die gewünschte Datenbank und die gespeicherte Prozedur verweisen.

      USE AdventureWorks2012;
      GO
      EXEC sp_helptext N'AdventureWorks2012.dbo.uspLogError';
      
  • Systemfunktion: OBJECT_DEFINITION

    1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Instanz von Database Engine (Datenbankmodul) her.

    2. Klicken Sie auf der Symbolleiste auf Neue Abfrage.

    3. Geben Sie im Abfragefenster die folgenden Anweisungen ein, die die OBJECT_DEFINITION-Systemfunktion verwenden: Ändern Sie den Datenbanknamen und den Namen der gespeicherten Prozedur so, dass diese auf die gewünschte Datenbank und die gespeicherte Prozedur verweisen.

      USE AdventureWorks2012;
      GO
      SELECT OBJECT_DEFINITION (OBJECT_ID(N'AdventureWorks2012.dbo.uspLogError'));
      
  • Objektkatalogsicht: sys.sql_modules

    1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Instanz von Database Engine (Datenbankmodul) her.

    2. Klicken Sie auf der Symbolleiste auf Neue Abfrage.

    3. Geben Sie im Abfragefenster die folgenden Anweisungen ein, die die sys.sql_modules-Katalogsicht verwenden: Ändern Sie den Datenbanknamen und den Namen der gespeicherten Prozedur so, dass diese auf die gewünschte Datenbank und die gespeicherte Prozedur verweisen.

      USE AdventureWorks2012;
      GO
      SELECT definition
      FROM sys.sql_modules
      WHERE object_id = (OBJECT_ID(N'AdventureWorks2012.dbo.uspLogError'));
      

[Nach oben]

Siehe auch

Verweis

OBJECT_DEFINITION (Transact-SQL)

sys.sql_modules (Transact-SQL)

sp_helptext (Transact-SQL)

OBJECT_ID (Transact-SQL)

Konzepte

Erstellen einer gespeicherten Prozedur

Ändern einer gespeicherten Prozedur

Löschen einer gespeicherten Prozedur

Umbenennen einer gespeicherten Prozedur