sp_stored_procedures (Transact-SQL)
Gilt für:SQL Server (alle unterstützten Versionen)
Azure SQL-Datenbank
Azure SQL Managed Instance
Gibt eine Liste der gespeicherten Prozeduren in der aktuellen Umgebung zurück.
Transact-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)