Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zwróć parametry procedury składowanej lub funkcji zdefiniowanej przez użytkownika w programie SQL Server (przykłady T-SQL)

W SQL Server możesz użyć Transact-SQL PARAMETERS widok schematu informacji o systemie, aby znaleźć parametry używane w procedurze składowanej lub funkcji zdefiniowanej przez użytkownika.

Dokładniej, zwraca jeden wiersz dla każdego parametru funkcji zdefiniowanej przez użytkownika lub procedury składowanej, do której bieżący użytkownik może uzyskać dostęp w bieżącej bazie danych.

Aby użyć tego widoku, określ w pełni kwalifikowaną nazwę INFORMATION_SCHEMA.PARAMETERS .

Przykład 1 – Podstawowe użycie

Oto przykład zwracania informacji o parametrach używanych we wszystkich procedurach składowanych i funkcjach zdefiniowanych przez użytkownika w bieżącej bazie danych, do których bieżący użytkownik ma dostęp.

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;

Wynik:

+------------+----------+----------------------+--------+-------------+------------------+-------------+
| 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         |
+------------+----------+----------------------+--------+-------------+------------------+-------------+

W tym przykładzie wybrałem zwrócenie tylko siedmiu kolumn z widoku. Poniższy przykład wyświetla wszystkie kolumny.

Przykład 2 – Zwróć wszystkie kolumny

W tym przykładzie uwzględniam wszystkie kolumny, które zwraca widok. Używam również wyjścia pionowego, aby nie trzeba było przewijać w poziomie. Ponadto, ze względu na zwięzłość, używam WHERE klauzula w celu zwrócenia informacji o tylko jednej funkcji zdefiniowanej przez użytkownika, która używa jednego parametru (dlatego zwracany jest tylko jeden wiersz).

SELECT * 
FROM INFORMATION_SCHEMA.PARAMETERS
WHERE SPECIFIC_NAME = 'ufn_AlbumsByGenre';

Wynik (przy użyciu wyjścia pionowego):

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

Zapoznaj się z dokumentacją firmy Microsoft, aby uzyskać informacje o każdej kolumnie zwróconej przez ten widok.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Warunkowa wydajność agregacji

  2. Jak ustawić domyślny język dla wszystkich nowych loginów w SQL Server (T-SQL)

  3. Jak mogę wykonać kopię zapasową zdalnej bazy danych SQL Server na dysku lokalnym?

  4. Jak naprawić „Schemat partycji ‚…’ nie ma żadnej następnej używanej grupy plików” w SQL Server

  5. Zrozumienie SQL Server zawsze szyfrowane