In SQL Server können Sie die Transact-SQL PARAMETERS
verwenden Schemaansicht der Systeminformationen, um die Parameter zu finden, die in einer gespeicherten Prozedur oder benutzerdefinierten Funktion verwendet werden.
Genauer gesagt gibt es eine Zeile für jeden Parameter einer benutzerdefinierten Funktion oder gespeicherten Prozedur zurück, auf die der aktuelle Benutzer in der aktuellen Datenbank zugreifen kann.
Um diese Ansicht zu verwenden, geben Sie den vollständig qualifizierten Namen INFORMATION_SCHEMA.PARAMETERS
an .
Beispiel 1 – Grundlegende Verwendung
Hier ist ein Beispiel für die Rückgabe von Informationen über die Parameter, die in allen gespeicherten Prozeduren und benutzerdefinierten Funktionen in der aktuellen Datenbank verwendet werden, auf die der aktuelle Benutzer Zugriff hat.
SELECT SPECIFIC_CATALOG AS [Database], SPECIFIC_SCHEMA AS [Schema], SPECIFIC_NAME AS [Table], PARAMETER_MODE AS [Mode], IS_RESULT, PARAMETER_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.PARAMETERS;
Ergebnis:
+------------+----------+----------------------+--------+-------------+------------------+-------------+ | Database | Schema | Table | Mode | IS_RESULT | PARAMETER_NAME | DATA_TYPE | |------------+----------+----------------------+--------+-------------+------------------+-------------| | Music | dbo | ISOweek | OUT | YES | | int | | Music | dbo | ISOweek | IN | NO | @DATE | datetime | | Music | dbo | ufn_AlbumsByGenre | IN | NO | @GenreId | int | | Music | dbo | spAlbumsFromArtist | IN | NO | @ArtistName | varchar | | Music | dbo | uspGetAlbumsByArtist | IN | NO | @ArtistId | int | +------------+----------+----------------------+--------+-------------+------------------+-------------+
In diesem Beispiel habe ich mich dafür entschieden, nur sieben Spalten aus der Ansicht zurückzugeben. Das folgende Beispiel zeigt alle Spalten an.
Beispiel 2 – Alle Spalten zurückgeben
In diesem Beispiel füge ich alle Spalten hinzu, die die Ansicht zurückgibt. Ich verwende auch eine vertikale Ausgabe, damit Sie nicht gezwungen sind, horizontal zu scrollen. Außerdem verwende ich der Kürze halber ein WHERE
-Klausel, um Informationen über nur eine benutzerdefinierte Funktion zurückzugeben, die einen Parameter verwendet (daher wird nur eine Zeile zurückgegeben).
SELECT * FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME = 'ufn_AlbumsByGenre';
Ergebnis (bei vertikaler Ausgabe):
SPECIFIC_CATALOG | Music SPECIFIC_SCHEMA | dbo SPECIFIC_NAME | ufn_AlbumsByGenre ORDINAL_POSITION | 1 PARAMETER_MODE | IN IS_RESULT | NO AS_LOCATOR | NO PARAMETER_NAME | @GenreId DATA_TYPE | int CHARACTER_MAXIMUM_LENGTH | NULL CHARACTER_OCTET_LENGTH | NULL COLLATION_CATALOG | NULL COLLATION_SCHEMA | NULL COLLATION_NAME | NULL CHARACTER_SET_CATALOG | NULL CHARACTER_SET_SCHEMA | NULL CHARACTER_SET_NAME | NULL NUMERIC_PRECISION | 10 NUMERIC_PRECISION_RADIX | 10 NUMERIC_SCALE | 0 DATETIME_PRECISION | NULL INTERVAL_TYPE | NULL INTERVAL_PRECISION | NULL USER_DEFINED_TYPE_CATALOG | NULL USER_DEFINED_TYPE_SCHEMA | NULL USER_DEFINED_TYPE_NAME | NULL SCOPE_CATALOG | NULL SCOPE_SCHEMA | NULL SCOPE_NAME | NULL
Informationen zu jeder von dieser Ansicht zurückgegebenen Spalte finden Sie in der Microsoft-Dokumentation.