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

Find de kolonner, der returneres af en funktion med tabelværdi (T-SQL-eksempler)

I SQL Server kan du bruge Transact-SQL ROUTINE_COLUMNS systeminformationsskemavisning for at finde de kolonner, der returneres af en funktion med tabelværdi.

Mere specifikt returnerer den én række for hver kolonne, der returneres af de tabelværdierede funktioner, 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.ROUTINE_COLUMNS .

Eksempel 1 – Grundlæggende brug

Her er et eksempel.

VÆLG TABLE_CATALOG AS [Database], TABLE_SCHEMA AS [Skema], TABLE_NAME AS [Function], COLUMN_NAME AS [Column], DATA_TYPE AS [Data Type], CHARACTER_MAXIMUM_LENGTH AS [Char Max Length] FRA INFORMATION_SCHEMA.ROUTINE;

>

Resultat:

+------------+----------------- ----------+-------------+------------------------+| Database | Skema | Funktion | Kolonne | Datatype | Char Max Længde ||-------------+-----------+-------------------+- ----------+-------------+------------------------|| Musik | dbo | ufn_AlbumsByGenre | Kunstnernavn | nvarchar | 255 || Musik | dbo | ufn_AlbumsByGenre | Albumnavn | nvarchar | 255 || Musik | dbo | ufn_AlbumsByGenre | Genre | nvarchar | 50 |+----------------------------- ----------+-------------+------------------------+

Disse resultater viser mig, at der kun er én funktion med tabelværdi, som jeg kan få adgang til i databasen, og den returnerer tre kolonner.

I dette eksempel valgte jeg kun at returnere seks kolonner fra visningen. Følgende eksempel viser alle kolonner, der returneres af visningen.

Eksempel 2 – Returner alle kolonner fra visningen

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 kortheds skyld specificerer jeg også for visningen at returnere information om kun én kolonne (derfor returneres kun én række).

VÆLG * FRA INFORMATION_SCHEMA.ROUTINE_COLUMNSWHERE TABLE_NAME ='ufn_AlbumsByGenre'AND COLUMN_NAME ='ArtistName';

Resultat (ved hjælp af lodret output):

TABLE_CATALOG | MusikTABLE_SCHEMA | dboTABLE_NAME | ufn_AlbumsByGenreCOLUMN_NAME | KunstnernavnORDINAL_POSITION | 1COLUMN_DEFAULT | NULLIS_NULLABLE | NODATA_TYPE | nvarcharCHARACTER_MAXIMUM_LENGTH | 255CHARACTER_OCTET_LENGTH | 510NUMERIC_PRECISION | NULLNUMERIC_PRECISION_RADIX | NULLNUMERIC_SCALE | NULLDATETIME_PRECISION | NULLCHARACTER_SET_CATALOG | NULLCHARACTER_SET_SCHEMA | NULLCHARACTER_SET_NAME | UNICODECOLLATION_CATALOG | NULLCOLLATION_SCHEMA | NULLCOLLATION_NAME | SQL_Latin1_General_CP1_CI_ASDOMAIN_CATALOG | NULLDOMAIN_SCHEMA | NULLDOMAIN_NAME | NULL

Se Microsoft-dokumentationen for oplysninger om hver kolonne, der returneres af denne visning.


  1. Hvordan erklærer man variabel og bruger den i det samme Oracle SQL-script?

  2. ExecuteNonQuery returnerer -1 ved brug af sql COUNT på trods af forespørgselsstrengen

  3. Sådan finder du alle overtrædelser af begrænsninger i en SQL Server-database

  4. Sådan filtreres objekter i SQL Server Management Studio (SSMS) - SQL Server / TSQL vejledning del 19