SQL Serverでは、Transact-SQL ROUTINE_COLUMNS
を使用できます。 テーブル値関数によって返される列を検索するためのシステム情報スキーマビュー。
具体的には、現在のデータベースの現在のユーザーがアクセスできるテーブル値関数によって返される列ごとに1行を返します。
このビューを使用するには、INFORMATION_SCHEMA.ROUTINE_COLUMNS
の完全修飾名を指定します 。
例1-基本的な使用法
これが例です。
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;>
結果:
+------------+----------+-------------------+------------+-------------+-------------------+ | 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 | +------------+----------+-------------------+------------+-------------+-------------------+
これらの結果は、データベースでアクセスできるテーブル値関数が1つだけであり、3つの列を返すことを示しています。
この例では、ビューから6列のみを返すことを選択しました。次の例は、ビューによって返されるすべての列を表示します。
例2–ビューからすべての列を返す
この例では、ビューが返すすべての列を含めます。また、水平方向にスクロールする必要がないように、垂直方向の出力を使用しています。また、簡潔にするために、ビューに1つの列のみに関する情報を返すように指定します(したがって、1つの行のみが返されます)。
SELECT * FROM INFORMATION_SCHEMA.ROUTINE_COLUMNS WHERE TABLE_NAME = 'ufn_AlbumsByGenre' AND COLUMN_NAME = 'ArtistName';
結果(垂直出力を使用):
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
このビューによって返される各列については、Microsoftのドキュメントを参照してください。