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 DatenbankDas 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_info
ist, werden nur gespeicherte Prozeduren zurückgegeben, die vom aktuellen Benutzer ausgeführt werden können.
sp_stored_procedures
SQLProcedures
entspricht in ODBC. Die zurückgegebenen Ergebnisse werden nach PROCEDURE_QUALIFIER
, PROCEDURE_OWNER
und 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;