In SQL Server kunt u de Transact-SQL ROUTINE_COLUMNS
systeeminformatieschema om de kolommen te vinden die worden geretourneerd door een functie met tabelwaarde.
Meer specifiek retourneert het één rij voor elke kolom die wordt geretourneerd door de tabelwaardefuncties die toegankelijk zijn voor de huidige gebruiker in de huidige database.
Om deze weergave te gebruiken, geeft u de volledig gekwalificeerde naam op van INFORMATION_SCHEMA.ROUTINE_COLUMNS
.
Voorbeeld 1 – Basisgebruik
Hier is een voorbeeld.
SELECT TABLE_CATALOG AS [Database], TABLE_SCHEMA AS [Schema], TABLE_NAME AS [Function], COLUMN_NAME AS [Column], DATA_TYPE AS [Data Type], CHARACTER_MAXIMUM_LENGTH AS [Char Max Length] FROM INFORMATION_SCHEMA.ROUTINE_COLUMNS;>
Resultaat:
+------------+----------+-------------------+------------+-------------+-------------------+ | Database | Schema | Function | Column | Data Type | Char Max Length | |------------+----------+-------------------+------------+-------------+-------------------| | Music | dbo | ufn_AlbumsByGenre | ArtistName | nvarchar | 255 | | Music | dbo | ufn_AlbumsByGenre | AlbumName | nvarchar | 255 | | Music | dbo | ufn_AlbumsByGenre | Genre | nvarchar | 50 | +------------+----------+-------------------+------------+-------------+-------------------+
Deze resultaten laten me zien dat er maar één functie met tabelwaarde is waartoe ik toegang heb in de database, en deze retourneert drie kolommen.
In dit voorbeeld heb ik ervoor gekozen om slechts zes kolommen uit de weergave te retourneren. In het volgende voorbeeld worden alle kolommen weergegeven die door de weergave worden geretourneerd.
Voorbeeld 2 – Alle kolommen retourneren vanuit de weergave
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. Kortheidshalve specificeer ik ook dat de weergave informatie over slechts één kolom retourneert (daarom wordt slechts één rij geretourneerd).
SELECT * FROM INFORMATION_SCHEMA.ROUTINE_COLUMNS WHERE TABLE_NAME = 'ufn_AlbumsByGenre' AND COLUMN_NAME = 'ArtistName';
Resultaat (met verticale uitvoer):
TABLE_CATALOG | Music TABLE_SCHEMA | dbo TABLE_NAME | ufn_AlbumsByGenre COLUMN_NAME | ArtistName ORDINAL_POSITION | 1 COLUMN_DEFAULT | NULL IS_NULLABLE | NO DATA_TYPE | nvarchar CHARACTER_MAXIMUM_LENGTH | 255 CHARACTER_OCTET_LENGTH | 510 NUMERIC_PRECISION | NULL NUMERIC_PRECISION_RADIX | NULL NUMERIC_SCALE | NULL DATETIME_PRECISION | NULL CHARACTER_SET_CATALOG | NULL CHARACTER_SET_SCHEMA | NULL CHARACTER_SET_NAME | UNICODE COLLATION_CATALOG | NULL COLLATION_SCHEMA | NULL COLLATION_NAME | SQL_Latin1_General_CP1_CI_AS DOMAIN_CATALOG | NULL DOMAIN_SCHEMA | NULL DOMAIN_NAME | NULL
Zie de Microsoft-documentatie voor informatie over elke kolom die door deze weergave wordt geretourneerd.