sql >> Database >  >> RDS >> Sqlserver

Retourneer de parameters van een opgeslagen procedure of door de gebruiker gedefinieerde functie in SQL Server (T-SQL-voorbeelden)

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.


  1. Witboek CBO-statistieken

  2. Hoe gebruiker in Superuser te veranderen in PostgreSQL

  3. Hoe top 1 en gesorteerd op datum selecteren in Oracle SQL?

  4. Hoe SHOW COLLATION werkt in MariaDB