SQL Server スキーマ コレクション

適用対象: .NET Framework .NET .NET Standard

ADO.NET のダウンロード

Microsoft SqlClient Data Provider for SQL Server では、一般的なスキーマ コレクションに加え、追加のスキーマ コレクションもサポートされています。 スキーマ コレクションは、使用している SQL Server のバージョンによって多少異なります。 サポートされるスキーマ コレクションの一覧を確認するには、引数を指定しないで、またはスキーマ コレクション名に "MetaDataCollections" を指定して、GetSchema メソッドを呼び出します。 これにより、サポートされるスキーマ コレクションの一覧、それぞれがサポートする制限数、および使用する識別子部分の数と共に、DataTable が返されます。

データベース

ColumnName データ型 説明
database_name 文字列 データベース名。
dbid Int16 データベース ID。
作成日 DateTime データベースの作成日。

外部キー

ColumnName データ型 説明
CONSTRAINT_CATALOG 文字列 制約が属するカタログ。
CONSTRAINT_SCHEMA 文字列 制約を含むスキーマ。
CONSTRAINT_NAME 文字列 名前。
TABLE_CATALOG 文字列 制約が含まれるテーブル名。
TABLE_SCHEMA 文字列 テーブルを含むスキーマ。
TABLE_NAME 文字列 テーブル名
CONSTRAINT_TYPE 文字列 制約の型。 "FOREIGN KEY" だけが許可されています。
IS_DEFERRABLE 文字列 制約を遅延可能にするかどうかを指定します。 NO が返されます。
当初は保留 文字列 制約を最初に遅延可能にするかどうかを指定します。 NO が返されます。

インデックス

ColumnName データ型 説明
制約_カタログ 文字列 インデックスが属するカタログ。
制約スキーマ 文字列 インデックスを含むスキーマ。
constraint_name 文字列 インデックス名。
table_catalog 文字列 インデックスが関連付けられているテーブル名。
table_schema 文字列 インデックスが関連付けられているテーブルを含むスキーマ。
table_name 文字列 テーブル名。
index_name 文字列 インデックス名。
type_desc 文字列 インデックスの種類。次のいずれかの値になります。

-ヒープ
-クラスター 化
非クラスタ化
-Xml
- 空間

インデックス列

ColumnName データ型 説明
constraint_catalog 文字列 インデックスが属するカタログ。
constraint_schema 文字列 インデックスを含むスキーマ。
constraint_name 文字列 インデックス名。
table_catalog 文字列 インデックスが関連付けられているテーブル名。
table_schema 文字列 インデックスが関連付けられているテーブルを含むスキーマ。
table_name 文字列 テーブル名。
column_name 文字列 インデックスが関連付けられている列名。
ordinal_position Int32 列の序数位置。
KeyType Byte オブジェクトの型。
index_name 文字列 インデックス名。

プロシージャ

ColumnName データ型 説明
SPECIFIC_CATALOG 文字列 カタログ固有の名前。
SPECIFIC_SCHEMA 文字列 スキーマ固有の名前。
SPECIFIC_NAME 文字列 カタログ固有の名前。
ROUTINE_CATALOG 文字列 ストアドプロシージャが属するカタログ。
ROUTINE_SCHEMA 文字列 ストアド プロシージャを含むスキーマ。
ROUTINE_NAME 文字列 ストアド プロシージャの名前。
ROUTINE_TYPE 文字列 ストアド プロシージャの PROCEDURE と関数の FUNCTION を返します。
作成済み DateTime プロシージャが作成された日時。
LAST_ALTERED DateTime プロシージャの最終更新日時。

プロシージャ パラメーター

ColumnName データ型 説明
SPECIFIC_CATALOG 文字列 このパラメーターを受け取るプロシージャのカタログ名。
SPECIFIC_SCHEMA 文字列 このパラメーターを受け取るプロシージャを含むスキーマ。
SPECIFIC_NAME 文字列 このパラメーターを受け取るとるプロシージャ名。
ORDINAL_POSITION Int32 パラメーターの位置を示す 1 から始まる序数。 プロシージャの戻り値については 0 になります。
PARAMETER_MODE 文字列 入力パラメーターでは IN が返され、出力パラメーターでは OUT が返され、I/O パラメーターでは INOUT が返されます。
IS_RESULT 文字列 プロシージャの結果が関数を表す場合には YES が返されます。 その他の場合は NO が返されます。
AS_LOCATOR 文字列 ロケーターとして宣言された場合は YES が返されます。 その他の場合は NO が返されます。
PARAMETER_NAME 文字列 パラメーターの名前。 関数の戻り値に相当する場合は NULL になります。
DATA_TYPE 文字列 システムにより提供されるデータ型。
最大文字数 Int32 バイナリまたは文字データ型の文字列の最大長。 その他の場合は NULL が返されます。
CHARACTER_OCTET_LENGTH Int32 バイナリまたは文字データ型の最大バイト数。 その他の場合は NULL が返されます。
COLLATION_CATALOG 文字列 パラメーター照合のカタログ名。 文字型の 1 つでない場合は、NULL が返されます。
COLLATION_SCHEMA 文字列 常に NULL が返されます。
COLLATION_NAME 文字列 パラメーター照合の名前。 文字型の 1 つでない場合は、NULL が返されます。
CHARACTER_SET_CATALOG 文字列 パラメーターの文字セットのカタログ名。 文字型の 1 つでない場合は、NULL が返されます。
CHARACTER_SET_SCHEMA 文字列 常に NULL が返されます。
CHARACTER_SET_NAME 文字列 パラメーターの文字セット名。 文字型の 1 つでない場合は、NULL が返されます。
NUMERIC_PRECISION Byte 近似値データ、正確な数値データ、整数データ、または通貨データの精度。 その他の場合は NULL が返されます。
NUMERIC_PRECISION_RADIX Int16 近似数値データ、正確な数値データ、整数データ、または通貨データの精度の基数。 その他の場合は NULL が返されます。
NUMERIC_SCALE Int32 近似数値データ、厳密数値データ、整数データ、または通貨データの位取り。 その他の場合は NULL が返されます。
DATETIME_PRECISION Int16 パラメーターの型が datetime または smalldatetime の場合の秒の小数部の精度。 その他の場合は NULL が返されます。
INTERVAL_TYPE 文字列 NULL。 将来 SQL Server で使用するために予約されています。
INTERVAL_PRECISION Int16 NULL。 将来 SQL Server で使用するために予約されています。

テーブル

ColumnName データ型 説明
TABLE_CATALOG 文字列 テーブルのカタログ。
TABLE_SCHEMA 文字列 テーブルを含むスキーマ。
TABLE_NAME 文字列 テーブル名。
TABLE_TYPE 文字列 テーブルの型。 VIEWまたは BASE TABLEを指定できます。

[列]

ColumnName データ型 説明
TABLE_CATALOG 文字列 テーブルのカタログ。
TABLE_SCHEMA 文字列 テーブルを含むスキーマ。
TABLE_NAME 文字列 テーブル名。
COLUMN_NAME 文字列 列名。
ORDINAL_POSITION Int32 列の識別番号。
COLUMN_DEFAULT 文字列 列の既定値。
IS_NULLABLE 文字列 列に NULL 値が許容されるかどうかを指定します。 この列に NULL が許容される場合は、YES が返されます。 その他の場合は NO が返されます。
DATA_TYPE 文字列 システムにより提供されるデータ型。
最大文字数 Int32 – Sql8、Int16 – Sql7 バイナリ データ、文字データ、またはテキストおよびイメージ データの最大文字列長。 その他の場合は NULL が返されます。
CHARACTER_OCTET_LENGTH Int32 – SQL8、Int16 – Sql7 バイナリ データ、文字データ、またはテキストおよびイメージ データの最大バイト長。 その他の場合は NULL が返されます。
NUMERIC_PRECISION 符号なしバイト 近似値データ、正確な数値データ、整数データ、または通貨データの精度。 その他の場合は NULL が返されます。
NUMERIC_PRECISION_RADIX Int16 近似数値データ、正確な数値データ、整数データ、または通貨データの精度の基数。 その他の場合は NULL が返されます。
NUMERIC_SCALE Int32 近似数値データ、厳密数値データ、整数データ、または通貨データの位取り。 その他の場合は NULL が返されます。
DATETIME_PRECISION Int16 日付時刻データ型および SQL-92 interval データ型のサブタイプ コード。 その他のデータ型に対しては NULL が返されます。
CHARACTER_SET_CATALOG String 列が文字データ型またはテキスト データ型である場合は、文字セットがあるデータベースを示すマスターが返されます。 その他の場合は NULL が返されます。
CHARACTER_SET_SCHEMA 文字列 常に NULL が返されます。
CHARACTER_SET_NAME 文字列 この列が文字データ型またはテキスト データ型である場合、文字セットの一意の名前が返されます。 その他の場合は NULL が返されます。
COLLATION_CATALOG 文字列 列が文字データ型またはテキスト データ型である場合は、照合順序が定義されているデータベースを示すマスターが返されます。 その他の場合、この列は NULL になります。
IS_FILESTREAM 文字列 列に FILESTREAM 属性がある場合は YES。

列には FILESTREAM 属性がない場合は NO。
IS_SPARSE 文字列 列がスパース列である場合は YES。

列がスパース列でない場合は NO。
IS_COLUMN_SET 文字列 その列が列セット列である場合は YES。

列が列セット列でない場合は NO。

AllColumns

AllColumns スキーマ コレクションは、スパース列をサポートするために使用されます。 AllColumns の制限と生成される DataTable スキーマは、Columns スキーマ コレクションと同じです。 相違は、Columns スキーマ コレクションに含まれていない列セットの列が AllColumns に含まれている点のみです。 次の表では、それらの列について説明します。

ColumnName DataType 説明
TABLE_CATALOG 文字列 テーブルのカタログ。
TABLE_SCHEMA String テーブルを含むスキーマ。
TABLE_NAME 文字列 テーブル名。
COLUMN_NAME 文字列 列名。
ORDINAL_POSITION Int32 列の識別番号。
COLUMN_DEFAULT 文字列 列の既定値。
IS_NULLABLE 文字列 列に NULL 値が許容されるかどうかを指定します。 この列に NULL が許容される場合は、YES が返されます。 その他の場合は NO が返されます。
DATA_TYPE 文字列 システムにより提供されるデータ型。
最大文字数 Int32 バイナリ データ、文字データ、またはテキストおよびイメージ データの最大文字列長。 その他の場合は NULL が返されます。
CHARACTER_OCTET_LENGTH Int32 バイナリ データ、文字データ、またはテキストおよびイメージ データの最大バイト長。 その他の場合は NULL が返されます。
NUMERIC_PRECISION 符号なしバイト 近似値データ、正確な数値データ、整数データ、または通貨データの精度。 その他の場合は NULL が返されます。
NUMERIC_PRECISION_RADIX Int16 近似数値データ、正確な数値データ、整数データ、または通貨データの精度の基数。 その他の場合は NULL が返されます。
NUMERIC_SCALE Int32 近似数値データ、厳密数値データ、整数データ、または通貨データの位取り。 その他の場合は NULL が返されます。
DATETIME_PRECISION Int16 日付時刻データ型および SQL-92 interval データ型のサブタイプ コード。 その他のデータ型に対しては NULL が返されます。
CHARACTER_SET_CATALOG 文字列 列が文字データ型またはテキスト データ型である場合は、文字セットがあるデータベースを示すマスターが返されます。 その他の場合は NULL が返されます。
CHARACTER_SET_SCHEMA 文字列 常に NULL が返されます。
CHARACTER_SET_NAME 文字列 この列が文字データ型またはテキスト データ型である場合、文字セットの一意の名前が返されます。 その他の場合は NULL が返されます。
COLLATION_CATALOG 文字列 列が文字データ型またはテキスト データ型である場合は、照合順序が定義されているデータベースを示すマスターが返されます。 その他の場合、この列は NULL になります。
IS_FILESTREAM 文字列 列に FILESTREAM 属性がある場合は YES。

列には FILESTREAM 属性がない場合は NO。
IS_SPARSE 文字列 列がスパース列である場合は YES。

列がスパース列でない場合は NO。
IS_COLUMN_SET 文字列 その列が列セット列である場合は YES。

列が列セット列でない場合は NO。

ColumnSetColumns

ColumnSetColumns スキーマ コレクションは、スパース列をサポートするために使用されます。 ColumnSetColumns スキーマ コレクションは、列セット内のすべての列のスキーマを返します。 次の表では、それらの列について説明します。

ColumnName データ型 説明
TABLE_CATALOG 文字列 テーブルのカタログ。
TABLE_SCHEMA 文字列 テーブルを含むスキーマ。
TABLE_NAME 文字列 テーブル名。
COLUMN_NAME 文字列 列名。
ORDINAL_POSITION Int32 列の識別番号。
COLUMN_DEFAULT 文字列 列の既定値。
IS_NULLABLE 文字列 列に NULL 値が許容されるかどうかを指定します。 この列に NULL が許容される場合は、YES が返されます。 その他の場合は NO が返されます。
DATA_TYPE 文字列 システムにより提供されるデータ型。
最大文字数 Int32 バイナリ データ、文字データ、またはテキストおよびイメージ データの最大文字列長。 その他の場合は NULL が返されます。
CHARACTER_OCTET_LENGTH Int32 バイナリ データ、文字データ、またはテキストおよびイメージ データの最大バイト長。 その他の場合は NULL が返されます。
NUMERIC_PRECISION 符号なしバイト 近似値データ、正確な数値データ、整数データ、または通貨データの精度。 その他の場合は NULL が返されます。
NUMERIC_PRECISION_RADIX Int16 近似数値データ、正確な数値データ、整数データ、または通貨データの精度の基数。 その他の場合は NULL が返されます。
NUMERIC_SCALE Int32 近似数値データ、厳密数値データ、整数データ、または通貨データの位取り。 その他の場合は NULL が返されます。
DATETIME_PRECISION Int16 日付時刻データ型および SQL-92 interval データ型のサブタイプ コード。 その他のデータ型に対しては NULL が返されます。
CHARACTER_SET_CATALOG 文字列 列が文字データ型またはテキスト データ型である場合は、文字セットがあるデータベースを示すマスターが返されます。 その他の場合は NULL が返されます。
CHARACTER_SET_SCHEMA 文字列 常に NULL が返されます。
CHARACTER_SET_NAME 文字列 この列が文字データ型またはテキスト データ型である場合、文字セットの一意の名前が返されます。 その他の場合は NULL が返されます。
COLLATION_CATALOG 文字列 列が文字データ型またはテキスト データ型である場合は、照合順序が定義されているデータベースを示すマスターが返されます。 その他の場合、この列は NULL になります。
IS_FILESTREAM 文字列 列に FILESTREAM 属性がある場合は YES。

列には FILESTREAM 属性がない場合は NO。
IS_SPARSE 文字列 列がスパース列である場合は YES。

列がスパース列でない場合は NO。
IS_COLUMN_SET 文字列 その列が列セット列である場合は YES。

列が列セット列でない場合は NO。

ユーザー

ColumnName データ型 説明
uid Int16 このデータベースで一意のユーザー ID。 1 はデータベースの所有者です。
user_name 文字列 このデータベースで一意のユーザー名またはグループ名。
createdate DateTime アカウントが追加された日付。
updatedate DateTime アカウントが最後に変更された日付。

閲覧数

ColumnName データ型 説明
TABLE_CATALOG 文字列 ビューのカタログ。
TABLE_SCHEMA 文字列 ビューを含むスキーマ。
TABLE_NAME 文字列 ビューの名前。
CHECK_OPTION 文字列 WITH CHECK OPTION の型。 元のビューが WITH CHECK OPTION を使用して作成されている場合は CASCADE になります。 その他の場合は NONE が返されます。
IS_UPDATABLE 文字列 ビューが更新可能であるかどうかを指定します。 常に NO が返されます。

列を表示

ColumnName データ型 説明
カタログを見る 文字列 ビューのカタログ。
VIEW_SCHEMA 文字列 ビューを含むスキーマ。
VIEW_NAME 文字列 ビューの名前。
TABLE_CATALOG 文字列 このビューに関連付けられているテーブルのカタログ。
TABLE_SCHEMA 文字列 このビューに関連付けられているテーブルを含むスキーマ。
TABLE_NAME 文字列 ビューに関連付けられているテーブルの名前。 ベーステーブル
COLUMN_NAME 文字列 列名。

UserDefinedTypes

ColumnName データ型 説明
assembly_name 文字列 アセンブリのファイル名。
udt_name 文字列 アセンブリのクラス名。
version_major オブジェクト メジャー バージョン番号。
version_minor オブジェクト マイナーバージョン番号。
version_build オブジェクト ビルド番号。
バージョン改訂 オブジェクト 改訂番号。
culture_info オブジェクト この UDT に関連付けられているカルチャ情報。
public_key オブジェクト このアセンブリで使用される公開キー。
is_fixed_length ブール値 型の長さを max_length と常に同じにするかどうかを指定します。
max_length Int16 型の最大長 (バイト単位)。
作成日 DateTime アセンブリが作成/登録された日付。
Permission_set_desc 文字列 アセンブリのアクセス許可セット/セキュリティ レベルのフレンドリ名。

関連項目