In SQL Server kunt u de Transact-SQL PARAMETERS
systeeminformatieschema om de parameters te vinden die worden gebruikt in een opgeslagen procedure of door de gebruiker gedefinieerde functie.
Meer specifiek retourneert het één rij voor elke parameter van een door de gebruiker gedefinieerde functie of opgeslagen procedure die toegankelijk is voor de huidige gebruiker in de huidige database.
Om deze weergave te gebruiken, geeft u de volledig gekwalificeerde naam op van INFORMATION_SCHEMA.PARAMETERS
.
Voorbeeld 1 – Basisgebruik
Hier is een voorbeeld van het retourneren van informatie over de parameters die worden gebruikt in alle opgeslagen procedures en door de gebruiker gedefinieerde functies in de huidige database waartoe de huidige gebruiker toegang heeft.
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;
Resultaat:
+------------+----------+----------------------+--------+-------------+------------------+-------------+ | 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 dit voorbeeld heb ik ervoor gekozen om slechts zeven kolommen uit de weergave te retourneren. In het volgende voorbeeld worden alle kolommen weergegeven.
Voorbeeld 2 – Alle kolommen retourneren
In dit voorbeeld neem ik alle kolommen op die de weergave retourneert. Ik gebruik ook verticale uitvoer, zodat je niet gedwongen wordt om horizontaal te scrollen. Om het kort te houden, gebruik ik ook een WHERE
om informatie te retourneren over slechts één door de gebruiker gedefinieerde functie die één parameter gebruikt (daarom wordt er maar één rij geretourneerd).
SELECT * FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME = 'ufn_AlbumsByGenre';
Resultaat (met verticale uitvoer):
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
Zie de Microsoft-documentatie voor informatie over elke kolom die door deze weergave wordt geretourneerd.