SQL Serverでは、Transact-SQL PARAMETERS
を使用できます。 ストアドプロシージャまたはユーザー定義関数で使用されるパラメーターを検索するためのシステム情報スキーマビュー。
具体的には、現在のデータベース内の現在のユーザーがアクセスできるユーザー定義関数またはストアドプロシージャのパラメータごとに1行を返します。
このビューを使用するには、INFORMATION_SCHEMA.PARAMETERS
の完全修飾名を指定します 。
例1-基本的な使用法
これは、現在のユーザーがアクセスできる現在のデータベース内のすべてのストアドプロシージャとユーザー定義関数で使用されるパラメーターに関する情報を返す例です。
SELECT SPECIFIC_CATALOG AS [Database], SPECIFIC_SCHEMA AS [Schema], SPECIFIC_NAME AS [Table], PARAMETER_MODE AS [Mode], IS_RESULT, PARAMETER_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.PARAMETERS;
結果:
+------------+----------+----------------------+--------+-------------+------------------+-------------+ | Database | Schema | Table | Mode | IS_RESULT | PARAMETER_NAME | DATA_TYPE | |------------+----------+----------------------+--------+-------------+------------------+-------------| | Music | dbo | ISOweek | OUT | YES | | int | | Music | dbo | ISOweek | IN | NO | @DATE | datetime | | Music | dbo | ufn_AlbumsByGenre | IN | NO | @GenreId | int | | Music | dbo | spAlbumsFromArtist | IN | NO | @ArtistName | varchar | | Music | dbo | uspGetAlbumsByArtist | IN | NO | @ArtistId | int | +------------+----------+----------------------+--------+-------------+------------------+-------------+
この例では、ビューから7列のみを返すことを選択しました。次の例では、すべての列が表示されます。
例2–すべての列を返す
この例では、ビューが返すすべての列を含めます。また、水平方向にスクロールする必要がないように、垂直方向の出力を使用しています。また、簡潔にするために、WHERE
を使用します 1つのパラメーターを使用する1つのユーザー定義関数に関する情報を返すための句(したがって、1つの行のみが返されます)。
SELECT * FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME = 'ufn_AlbumsByGenre';
結果(垂直出力を使用):
SPECIFIC_CATALOG | Music SPECIFIC_SCHEMA | dbo SPECIFIC_NAME | ufn_AlbumsByGenre ORDINAL_POSITION | 1 PARAMETER_MODE | IN IS_RESULT | NO AS_LOCATOR | NO PARAMETER_NAME | @GenreId DATA_TYPE | int CHARACTER_MAXIMUM_LENGTH | NULL CHARACTER_OCTET_LENGTH | NULL COLLATION_CATALOG | NULL COLLATION_SCHEMA | NULL COLLATION_NAME | NULL CHARACTER_SET_CATALOG | NULL CHARACTER_SET_SCHEMA | NULL CHARACTER_SET_NAME | NULL NUMERIC_PRECISION | 10 NUMERIC_PRECISION_RADIX | 10 NUMERIC_SCALE | 0 DATETIME_PRECISION | NULL INTERVAL_TYPE | NULL INTERVAL_PRECISION | NULL USER_DEFINED_TYPE_CATALOG | NULL USER_DEFINED_TYPE_SCHEMA | NULL USER_DEFINED_TYPE_NAME | NULL SCOPE_CATALOG | NULL SCOPE_SCHEMA | NULL SCOPE_NAME | NULL
このビューによって返される各列については、Microsoftのドキュメントを参照してください。