In SQL Server, puoi usare Transact-SQL ROUTINE_COLUMNS
vista dello schema delle informazioni di sistema per trovare le colonne restituite da una funzione con valori di tabella.
Più specificamente, restituisce una riga per ogni colonna restituita dalle funzioni con valori di tabella a cui l'utente corrente può accedere nel database corrente.
Per utilizzare questa vista, specifica il nome completo di INFORMATION_SCHEMA.ROUTINE_COLUMNS
.
Esempio 1 – Utilizzo di base
Ecco un esempio.
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;
Risultato:
+------------+----------+-------------------+------------+-------------+-------------------+ | 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 | +------------+----------+-------------------+------------+-------------+-------------------+
Questi risultati mi mostrano che c'è solo una funzione con valori di tabella a cui posso accedere nel database e restituisce tre colonne.
In questo esempio ho scelto di restituire solo sei colonne dalla vista. L'esempio seguente mostra tutte le colonne restituite dalla vista.
Esempio 2 – Restituisci tutte le colonne dalla vista
In questo esempio includo tutte le colonne restituite dalla vista. Uso anche l'output verticale in modo da non essere costretto a scorrere orizzontalmente. Inoltre, per brevità, specifico che la vista restituisca informazioni su una sola colonna (quindi viene restituita solo una riga).
SELECT * FROM INFORMATION_SCHEMA.ROUTINE_COLUMNS WHERE TABLE_NAME = 'ufn_AlbumsByGenre' AND COLUMN_NAME = 'ArtistName';
Risultato (usando l'output verticale):
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
Consulta la documentazione Microsoft per informazioni su ciascuna colonna restituita da questa visualizzazione.