I SQL Server kan du använda Transact-SQL PARAMETERS
systeminformationsschemavy för att hitta parametrarna som används i en lagrad procedur eller användardefinierad funktion.
Mer specifikt returnerar den en rad för varje parameter i en användardefinierad funktion eller lagrad procedur som kan nås av den aktuella användaren i den aktuella databasen.
För att använda den här vyn, ange det fullständiga namnet på INFORMATION_SCHEMA.PARAMETERS
.
Exempel 1 – Grundläggande användning
Här är ett exempel på att returnera information om parametrarna som används i alla lagrade procedurer och användardefinierade funktioner i den aktuella databasen som den aktuella användaren har tillgång till.
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;
Resultat:
+------------+----------+----------------------+--------+-------------+------------------+-------------+ | 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 | +------------+----------+----------------------+--------+-------------+------------------+-------------+
I det här exemplet valde jag att endast returnera sju kolumner från vyn. Följande exempel visar alla kolumner.
Exempel 2 – Returnera alla kolumner
I det här exemplet inkluderar jag alla kolumner som vyn returnerar. Jag använder också vertikal utmatning så att du inte tvingas rulla horisontellt. För korthetens skull använder jag också en WHERE
sats för att returnera information om bara en användardefinierad funktion som använder en parameter (därför returneras endast en rad).
SELECT * FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME = 'ufn_AlbumsByGenre';
Resultat (med vertikal utdata):
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
Se Microsofts dokumentation för information om varje kolumn som returneras av den här vyn.