sql >> Databáze >  >> RDS >> Sqlserver

Vrátit parametry uložené procedury nebo uživatelem definované funkce na serveru SQL (příklady T-SQL)

V SQL Server můžete použít PARAMETERS Transact-SQL zobrazení schématu systémových informací k nalezení parametrů používaných v uložené proceduře nebo uživatelsky definované funkci.

Přesněji řečeno, vrací jeden řádek pro každý parametr uživatelsky definované funkce nebo uložené procedury, ke které má aktuální uživatel v aktuální databázi přístup.

Chcete-li použít toto zobrazení, zadejte plně kvalifikovaný název INFORMATION_SCHEMA.PARAMETERS .

Příklad 1 – Základní použití

Zde je příklad vrácení informací o parametrech použitých ve všech uložených procedurách a uživatelsky definovaných funkcích v aktuální databázi, ke které má aktuální uživatel přístup.

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;

Výsledek:

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

V tomto příkladu jsem se rozhodl vrátit pouze sedm sloupců z pohledu. Následující příklad zobrazuje všechny sloupce.

Příklad 2 – Vrátit všechny sloupce

V tomto příkladu zahrnu všechny sloupce, které zobrazení vrátí. Používám také vertikální výstup, abyste nebyli nuceni posouvat horizontálně. Kvůli stručnosti také používám WHERE klauzule za účelem vrácení informací pouze o jedné uživatelsky definované funkci, která používá jeden parametr (proto je vrácen pouze jeden řádek).

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

Výsledek (při použití vertikálního výstupu):

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

Informace o každém sloupci vráceném tímto zobrazením naleznete v dokumentaci společnosti Microsoft.


  1. Čtyři způsoby použití aplikace Microsoft Access

  2. Příklady SUBTIME() – MySQL

  3. MySQL LAST_INSERT_ID() používané s příkazem INSERT s více záznamy

  4. Formátování řetězce UUID bez REGEXP_REPLACE a PL/SQL