Dans SQL Server, vous pouvez utiliser le Transact-SQL ROUTINE_COLUMNS
vue du schéma des informations système pour trouver les colonnes renvoyées par une fonction table.
Plus précisément, il renvoie une ligne pour chaque colonne renvoyée par les fonctions table auxquelles l'utilisateur actuel peut accéder dans la base de données actuelle.
Pour utiliser cette vue, spécifiez le nom complet de INFORMATION_SCHEMA.ROUTINE_COLUMNS
.
Exemple 1 - Utilisation de base
Voici un exemple.
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;
Résultat :
+------------+----------+-------------------+------------+-------------+-------------------+ | 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 | +------------+----------+-------------------+------------+-------------+-------------------+
Ces résultats me montrent qu'il n'y a qu'une seule fonction table à laquelle je peux accéder dans la base de données, et elle renvoie trois colonnes.
Dans cet exemple, j'ai choisi de ne renvoyer que six colonnes de la vue. L'exemple suivant affiche toutes les colonnes renvoyées par la vue.
Exemple 2 - Renvoyer toutes les colonnes de la vue
Dans cet exemple, j'inclus toutes les colonnes renvoyées par la vue. J'utilise également la sortie verticale pour que vous ne soyez pas obligé de faire défiler horizontalement. De plus, par souci de brièveté, je précise que la vue doit renvoyer des informations sur une seule colonne (par conséquent, une seule ligne est renvoyée).
SELECT * FROM INFORMATION_SCHEMA.ROUTINE_COLUMNS WHERE TABLE_NAME = 'ufn_AlbumsByGenre' AND COLUMN_NAME = 'ArtistName';
Résultat (en utilisant la sortie 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
Consultez la documentation Microsoft pour plus d'informations sur chaque colonne renvoyée par cette vue.