В SQL Server можете да използвате Transact-SQL PARAMETERS
изглед на схемата за системна информация, за да намерите параметрите, използвани в съхранена процедура или дефинирана от потребителя функция.
По-конкретно, той връща един ред за всеки параметър на дефинирана от потребителя функция или съхранена процедура, която може да бъде достъпна от текущия потребител в текущата база данни.
За да използвате този изглед, посочете пълното име на INFORMATION_SCHEMA.PARAMETERS
.
Пример 1 – Основна употреба
Ето пример за връщане на информация за параметрите, използвани във всички съхранени процедури и дефинирани от потребителя функции в текущата база данни, до която текущият потребител има достъп.
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;
Резултат:
+------------+----------+----------------------+--------+-------------+------------------+-------------+ | 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 | +------------+----------+----------------------+--------+-------------+------------------+-------------+
В този пример избрах да върна само седем колони от изгледа. Следният пример показва всички колони.
Пример 2 – Връщане на всички колони
В този пример включвам всички колони, които изгледът връща. Използвам и вертикален изход, така че да не сте принудени да превъртате хоризонтално. Освен това, за краткост, използвам WHERE
клауза, за да върне информация само за една дефинирана от потребителя функция, която използва един параметър (следователно се връща само един ред).
SELECT * FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME = 'ufn_AlbumsByGenre';
Резултат (с помощта на вертикален изход):
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
Вижте документацията на Microsoft за информация относно всяка колона, върната от този изглед.