次の方法で共有


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

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

データベース

ColumnName データ型 説明
データベースネーム データベース名。
dbid Int16 データベース ID。
作成日 日付と時間 データベースの作成日。

外部キー

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

索引

ColumnName データ型 説明
constraint_catalog インデックスが属するカタログ。
制約スキーマ インデックスを含むスキーマ。
constraint_name インデックス名。
table_catalog インデックスが関連付けられているテーブル名。
table_schema インデックスが関連付けられているテーブルを含むスキーマ。
テーブル名 テーブル名。
index_name インデックス名。

インデックス (SQL Server 2008)

.NET Framework バージョン 3.5 SP1 および SQL Server 2008 以降では、新しい空間型、ファイルストリーム、スパース列をサポートするために、次の列がインデックス スキーマ コレクションに追加されました。 これらの列は、以前のバージョンの .NET Framework および SQL Server ではサポートされていません。

ColumnName データ型 説明
type_desc インデックスの種類。次のいずれかの値になります。

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

IndexColumns

ColumnName データ型 説明
constraint_catalog インデックスが属するカタログ。
制約スキーマ インデックスを含むスキーマ。
constraint_name インデックス名。
table_catalog インデックスが関連付けられているテーブル名。
table_schema インデックスが関連付けられているテーブルを含むスキーマ。
テーブル名 テーブル名。
column_name インデックスが関連付けられている列名。
ordinal_position Int32 列の位置を示す序数。
キーの種類 バイト オブジェクトの種類を指定します。
index_name インデックス名。

プロシージャ

ColumnName データ型 説明
SPECIFIC_CATALOG カタログ固有の名前。
特定スキーマ スキーマ固有の名前。
SPECIFIC_NAME カタログ固有の名前。
ルーチンカタログ ストアド プロシージャが属するカタログ。
ROUTINE_SCHEMA ストアド プロシージャを含むスキーマ。
ROUTINE_NAME ストアド プロシージャの名前。
ROUTINE_TYPE ストアド プロシージャには PROCEDURE が返され、関数には FUNCTION が返されます。
作成 日付と時間 プロシージャが作成された日時。
LAST_ALTERED 日付と時間 プロシージャの最終更新日時。

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

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

ColumnName データ型 説明
TABLE_CATALOG テーブルのカタログ。
TABLE_SCHEMA テーブルを含むスキーマ。
TABLE_NAME テーブル名。
テーブルタイプ テーブルの型。 VIEW または BASE TABLE のいずれかです。

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

列 (SQL Server 2008)

.NET Framework バージョン 3.5 SP1 および SQL Server 2008 以降では、新しい空間型、ファイルストリーム、スパース列をサポートするために、次の列が Columns スキーマ コレクションに追加されました。 これらの列は、以前のバージョンの .NET Framework および SQL Server ではサポートされていません。

ColumnName データ型 説明
IS_FILESTREAM 列に FILESTREAM 属性がある場合は YES。

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

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

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

AllColumns (SQL Server 2008)

.NET Framework バージョン 3.5 SP1 および SQL Server 2008 以降では、スパース列をサポートするために AllColumns スキーマ コレクションが追加されました。 AllColumns は、以前のバージョンの .NET Framework および SQL Server ではサポートされていません。

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

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

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

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

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

ColumnSetColumns (SQL Server 2008)

.NET Framework バージョン 3.5 SP1 および SQL Server 2008 以降では、スパース列をサポートするために ColumnSetColumns スキーマ コレクションが追加されました。 ColumnSetColumns は、以前のバージョンの .NET Framework および SQL Server ではサポートされていません。 ColumnSetColumns スキーマ コレクションは、列セット内のすべての列のスキーマを返します。 次の表では、それらの列について説明します。

ColumnName データ型 説明
TABLE_CATALOG テーブルのカタログ。
TABLE_SCHEMA テーブルを含むスキーマ。
TABLE_NAME テーブル名。
COLUMN_NAME 列名。
ORDINAL_POSITION Int32 列の識別番号。
COLUMN_DEFAULT 列の既定値。
IS_NULLABLE 列に NULL 値が許容されるかどうかを指定します。 この列に NULL が許容される場合は、YES が返されます。 その他の場合は NO が返されます。
データ型 システムにより提供されるデータ型。
文字列の最大長 (CHARACTER_MAXIMUM_LENGTH) Int32 バイナリ データ、文字データ、またはテキストおよびイメージ データの最大文字列長。 その他の場合は NULL が返されます。
CHARACTER_OCTET_LENGTH Int32 バイナリ データ、文字データ、またはテキストおよびイメージ データの最大バイト長。 その他の場合は NULL が返されます。
数値精度 符号なしバイト 数値データの概数、正確な数値データ、整数データ、または通貨データの有効桁数。 その他の場合は NULL が返されます。
NUMERIC_PRECISION_RADIX Int16 数値データの概数、正確な数値データ、整数データ、または通貨データの有効桁数の基数。 その他の場合は NULL が返されます。
数値スケール Int32 数値データの概数、正確な数値データ、整数データ、または通貨データの桁数。 その他の場合は NULL が返されます。
DATETIME_PRECISION Int16 日付時刻データ型および SQL-92 interval データ型のサブタイプ コード。 その他のデータ型に対しては NULL が返されます。
キャラクターセットカタログ 列が文字データ型またはテキスト データ型である場合は、文字セットがあるデータベースを示すマスターが返されます。 その他の場合は NULL が返されます。
文字セットスキーマ 常に 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 日付と時間 アカウントが追加された日付。
updatedate 日付と時間 アカウントが最後に変更された日付。

見解

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 列名。

ユーザー定義型

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

こちらも参照ください