Teilen über


sp_stored_procedures (Transact-SQL)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz

Gibt eine Liste der gespeicherten Prozeduren in der aktuellen Umgebung zurück.

Transact-SQL-Syntaxkonventionen

Syntax

sp_stored_procedures
    [ [ @sp_name = ] N'sp_name' ]
    [ , [ @sp_owner = ] N'sp_owner' ]
    [ , [ @sp_qualifier = ] N'sp_qualifier' ]
    [ , [ @fUsePattern = ] fUsePattern ]
[ ; ]

Argumente

[ @sp_name = ] N'sp_name'

Der Name der Prozedur, die zum Zurückgeben von Kataloginformationen verwendet wird. @sp_name ist nvarchar(390), wobei die Standardeinstellung istNULL. Mustervergleiche mit Platzhalterzeichen werden unterstützt.

[ @sp_owner = ] N'sp_owner'

Der Name des Schemas, zu dem die Prozedur gehört. @sp_owner ist nvarchar(384), mit einem Standardwert von NULL. Mustervergleiche mit Platzhalterzeichen werden unterstützt. Wenn @sp_owner nicht angegeben ist, gelten die Standardmäßigen Sichtbarkeitsregeln für Prozeduren des zugrunde liegenden Datenbankverwaltungssystems (DBMS).

Wenn das aktuelle Schema in SQL Server eine Prozedur mit dem angegebenen Namen enthält, wird diese Prozedur zurückgegeben. Wenn eine nicht qualifizierte gespeicherte Prozedur angegeben ist, sucht die Datenbank-Engine in der folgenden Reihenfolge nach der Prozedur:

  • Das sys-Schema der aktuellen Datenbank

  • Das Standardschema des aufrufenden Prozesses, wenn er in einem Batch oder in dynamischem SQL ausgeführt wird. Falls der nicht gekennzeichnete Prozedurname im Text einer anderen Prozedurdefinition auftritt, wird als Nächstes das Schema durchsucht, das diese andere Prozedur enthält.

  • Das dbo-Schema muss in der aktuellen Datenbank vorhanden sein.

[ @sp_qualifier = ] N'sp_qualifier'

Der Name des Prozedurqualifizierers. @sp_qualifier ist "sysname" mit dem Standardwert "NULL. Verschiedene DBMS-Produkte unterstützen die dreiteilige Benennung für Tabellen in der Form <qualifier>.<schema>.<name>. In SQL Server stellt @sp_qualifier den Datenbanknamen dar. Bei einigen anderen Produkten stellt sie den Servernamen der Datenbankumgebung für die Tabelle dar.

[ @fUsePattern = ] fUsePattern

Bestimmt, ob der Unterstrich (_), prozent (%) oder eckige Klammern ([ und ]) als Platzhalterzeichen interpretiert werden. @fUsePattern ist bit, mit einem Standardwert von 1.

  • 0 = Musterabgleich ist deaktiviert.
  • 1 = Musterabgleich ist aktiviert.

Rückgabecodewerte

Keine.

Resultset

Spaltenname Datentyp Beschreibung
PROCEDURE_QUALIFIER sysname Der Name des Prozedurqualifizierers. Diese Spalte kann sein NULL.
PROCEDURE_OWNER sysname Der Name des Prozedurbesitzers. Diese Spalte gibt immer einen Wert zurück.
PROCEDURE_NAME nvarchar(134) Der Name der Prozedur. Diese Spalte gibt immer einen Wert zurück.
NUM_INPUT_PARAMS int Für die zukünftige Verwendung reserviert.
NUM_OUTPUT_PARAMS int Für die zukünftige Verwendung reserviert.
NUM_RESULT_SETS int Für die zukünftige Verwendung reserviert.
REMARKS varchar(254) Die Beschreibung der Prozedur. SQL Server gibt keinen Wert für diese Spalte zurück.
PROCEDURE_TYPE smallint Der Prozedurtyp. SQL Server gibt immer 2.0 zurück. Dieser Wert kann eine der folgenden Optionen sein:

0 = SQL_PT_UNKNOWN
1 = SQL_PT_PROCEDURE
2 = SQL_PT_FUNCTION

Hinweise

Für die maximale Interoperabilität sollte der Gatewayclient nur den SQL-Standardmusterabgleich, nämlich die Prozentzeichen (%) und Unterstriche (_) übernehmen.

Die Berechtigungsinformationen zum Ausführen des Zugriffs auf eine bestimmte gespeicherte Prozedur für den aktuellen Benutzer werden nicht unbedingt überprüft. daher ist der Zugriff nicht garantiert. Nur dreiteilige Benennung wird verwendet. Dies bedeutet, dass nur lokale gespeicherte Prozeduren und keine remote gespeicherten Prozeduren (die vierteilige Benennung erfordern) zurückgegeben werden, wenn sie für SQL Server ausgeführt werden. Wenn das Server-Attribut ACCESSIBLE_SPROC Y im Resultset für sp_server_infoist, werden nur gespeicherte Prozeduren zurückgegeben, die vom aktuellen Benutzer ausgeführt werden können.

sp_stored_proceduresSQLProcedures entspricht in ODBC. Die zurückgegebenen Ergebnisse werden nach PROCEDURE_QUALIFIER, PROCEDURE_OWNERund PROCEDURE_NAME.

Berechtigungen

Erfordert die SELECT-Berechtigung im Schema.

Beispiele

A. Zurückgeben aller gespeicherten Prozeduren in der aktuellen Datenbank

Im folgenden Beispiel werden alle gespeicherten Prozeduren in der AdventureWorks2022-Datenbank zurückgegeben.

USE AdventureWorks2022;
GO
EXEC sp_stored_procedures;

B. Zurückgeben einer einzelnen gespeicherten Prozedur

Im folgenden Beispiel wird ein Resultset für die gespeicherte Prozedur uspLogError zurückgegeben.

USE AdventureWorks2022;
GO

sp_stored_procedures N'uspLogError',
    N'dbo',
    N'AdventureWorks2022',
    1;