sp_stored_procedures (Transact-SQL)

Gilt für:yesSQL Server (alle unterstützten Versionen) YesAzure SQL-DatenbankYesAzure SQL Managed Instance

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

ThemenlinksymbolTransact-SQL-Syntaxkonventionen

Syntax

  
sp_stored_procedures [ [ @sp_name = ] 'name' ]   
    [ , [ @sp_owner = ] 'schema']   
    [ , [ @sp_qualifier = ] 'qualifier' ]  
    [ , [@fUsePattern = ] 'fUsePattern' ]  

Argumente

[ @sp_name = ] 'name' Ist der Name der Prozedur, die zum Zurückgeben von Kataloginformationen verwendet wird. name ist vom Datentyp nvarchar(390)und hat den Standardwert NULL. Mustervergleiche mit Platzhalterzeichen werden unterstützt.

[ @sp_owner = ] 'schema' Ist der Name des Schemas, zu dem die Prozedur gehört. schema ist vom Datentyp nvarchar(384)und hat den Standardwert NULL. Mustervergleiche mit Platzhalterzeichen werden unterstützt. Wenn owner nicht angegeben wird, gelten die Standardregeln für die Sichtbarkeit von Prozeduren des zugrunde liegenden DBMS.

Wenn das aktuelle Schema eine Prozedur mit dem angegebenen Namen enthält, wird diese Prozedur in SQL Server zurückgegeben. Wenn eine nicht qualifizierte gespeicherte Prozedur angegeben ist, sucht das Datenbankmodul 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 in der aktuellen Datenbank

[ @qualifier = ] 'qualifier' Ist der Name des Prozedurqualifizierers. qualifier ist vom Datentyp sysnameund hat den Standardwert NULL. Verschiedene DBMS-Produkte unterstützen eine dreiteilige Namensgebung für Tabellen im Format (qualifier.schema.name. In SQL Server stellt der Qualifizierer den Datenbanknamen dar. Bei einigen anderen Produkten stellt sie den Servernamen der Datenbankumgebung für die Tabelle dar.

[ @fUsePattern = ] 'fUsePattern' Bestimmt, ob der Unterstrich (_), der Prozentwert (%)oder die Klammern [ ]) als Platzhalterzeichen interpretiert werden. fUsePattern ist vom Datentyp bit. Der Standardwert ist 1.

0 = Mustervergleich ist deaktiviert.

1 = Mustervergleich ist aktiviert.

Rückgabecodewerte

Keine

Resultsets

Spaltenname Datentyp BESCHREIBUNG
PROCEDURE_QUALIFIER sysname Der Name des Prozedurqualifizierers. Diese Spalte kann NULL enthalten.
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.
HINWEISE 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. Die folgenden Werte sind möglich:

0 = SQL_PT_UNKNOWN

1 = SQL_PT_PROCEDURE

2 = SQL_PT_FUNCTION

Bemerkungen

Für eine optimale Interoperabilität sollte der Gatewayclient nur einen SQL-Standardmustervergleich voraussetzen (die Platzhalterzeichen Prozent (%) und Unterstrich (_)).

Da die Berechtigungen des aktuellen Benutzers zum Ausführungszugriff auf eine bestimmte gespeicherte Prozedur nicht unbedingt überprüft werden, ist der Zugriff nicht unter allen Umständen sichergestellt. Beachten Sie, dass nur eine dreiteilige Benennung verwendet wird. Dies bedeutet, dass nur lokale gespeicherte Prozeduren, nicht remote gespeicherte Prozeduren (die vierteilige Benennung erfordern), zurückgegeben werden, wenn sie für SQL Server ausgeführt werden. Wenn das Serverattribut ACCESSIBLE_SPROC im Resultset von sp_server_infoden Wert Y hat, werden nur Informationen zu den gespeicherten Prozeduren zurückgegeben, die der aktuelle Benutzer ausführen kann.

sp_stored_procedures entspricht SQLProcedures in ODBC. Die zurückgegebenen Informationen werden nach PROCEDURE_QUALIFIER, PROCEDURE_OWNERund PROCEDURE_NAMEgeordnet.

Berechtigungen

Erfordert SELECT-Berechtigung für das Schema.

Beispiele

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

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

USE AdventureWorks2012;  
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 AdventureWorks2012;  
GO  
sp_stored_procedures N'uspLogError', N'dbo', N'AdventureWorks2012', 1;  

Weitere Informationen

Gespeicherte Prozeduren für Kataloginformationen (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)