sql >> Databasteknik >  >> RDS >> Database

Hitta kolumnerna som returneras av en tabellvärderad funktion (T-SQL-exempel)

I SQL Server kan du använda Transact-SQL ROUTINE_COLUMNS systeminformationsschemavy för att hitta kolumnerna som returneras av en tabellvärderad funktion.

Mer specifikt returnerar den en rad för varje kolumn som returneras av de tabellvärdade funktionerna som kan nås av den aktuella användaren i den aktuella databasen.

För att använda denna vy, ange det fullständiga namnet på INFORMATION_SCHEMA.ROUTINE_COLUMNS .

Exempel 1 – Grundläggande användning

Här är ett exempel.

VÄLJ TABLE_CATALOG SOM [Databas], TABLE_SCHEMA SOM [Schema], TABLE_NAME SOM [Funktion], COLUMN_NAME SOM [Kolumn], DATA_TYPE SOM [Datatyp], CHARACTER_MAXIMUM_LENGTH SOM [Tecknets maxlängd] FRÅN INFORMATION_SCHEMA.ROUTINE;

>

Resultat:

+------------+-----------+------------------------+-- ----------+-------------+------------------------+| Databas | Schema | Funktion | Kolumn | Datatyp | Röd Max längd ||------------+----------+-------------------+- ----------+-------------+------------------------|| Musik | dbo | ufn_AlbumsByGenre | Artistnamn | nvarchar | 255 || Musik | dbo | ufn_AlbumsByGenre | Albumnamn | nvarchar | 255 || Musik | dbo | ufn_AlbumsByGenre | Genre | nvarchar | 50 |+------------+-----------+------------------------+--- ----------+-------------+------------------------+

Dessa resultat visar mig att det bara finns en funktion med tabellvärde som jag kan komma åt i databasen, och den returnerar tre kolumner.

I det här exemplet valde jag att endast returnera sex kolumner från vyn. Följande exempel visar alla kolumner som returneras av vyn.

Exempel 2 – Returnera alla kolumner från vyn

I det här exemplet inkluderar jag alla kolumner som vyn returnerar. Jag använder också vertikal utmatning så att du inte tvingas rulla horisontellt. För korthetens skull specificerar jag också att vyn returnerar information om bara en kolumn (därför returneras bara en rad).

VÄLJ * FRÅN INFORMATION_SCHEMA.ROUTINE_COLUMNSWHERE TABLE_NAME ='ufn_AlbumsByGenre'AND COLUMN_NAME ='Artistnamn';

Resultat (med vertikal utdata):

TABLE_CATALOG | MusikTABLE_SCHEMA | dboTABLE_NAME | ufn_AlbumsByGenreCOLUMN_NAME | ArtistnamnORDINAL_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 Microsofts dokumentation för information om varje kolumn som returneras av den här vyn.


  1. Cykeldetektering med rekursiv subquery factoring

  2. Skapa och konfigurera Oracle Linked Server i SQL Server

  3. Hur man avpivoterar en tabell i PostgreSQL

  4. Jämförelse av datatyperna för datum och tid i SQL Server