sql >> Database teknologi >  >> RDS >> Sqlserver

Returner parametrene for en lagret procedure eller brugerdefineret funktion i SQL Server (T-SQL-eksempler)

I SQL Server kan du bruge Transact-SQL PARAMETERS systeminformationsskemavisning for at finde de parametre, der bruges i en lagret procedure eller brugerdefineret funktion.

Mere specifikt returnerer den én række for hver parameter i en brugerdefineret funktion eller lagret procedure, som den aktuelle bruger kan få adgang til i den aktuelle database.

For at bruge denne visning skal du angive det fuldt kvalificerede navn på INFORMATION_SCHEMA.PARAMETERS .

Eksempel 1 – Grundlæggende brug

Her er et eksempel på returnering af information om de parametre, der bruges i alle lagrede procedurer og brugerdefinerede funktioner i den aktuelle database, som den aktuelle bruger har adgang til.

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 dette eksempel valgte jeg kun at returnere syv kolonner fra visningen. Følgende eksempel viser alle kolonner.

Eksempel 2 – Returner alle kolonner

I dette eksempel inkluderer jeg alle kolonner, som visningen returnerer. Jeg bruger også lodret output, så du ikke er tvunget til at rulle vandret. For korthedens skyld bruger jeg også en WHERE klausul for at returnere information om kun én brugerdefineret funktion, der bruger én parameter (derfor returneres kun én række).

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

Resultat (ved hjælp af lodret output):

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 Microsoft-dokumentationen for oplysninger om hver kolonne, der returneres af denne visning.


  1. Indfangning af linkede serverfejl

  2. Introduktion til Firebase

  3. Sådan aktiveres Change Data Capture (CDC) på en database i SQL Server - SQL Server Tutorial

  4. Effektiv overvågning af MySQL med SCUMM Dashboards:Del 3