次の方法で共有


SQL Server スキーマ コレクション (ADO.NET)

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

Databases

ColumnName

DataType

説明

database_name

String

データベース名。

Dbid

Int16

データベース ID。

create_date

DateTime

データベースの作成日。

Foreign Keys

ColumnName

DataType

説明

constraint_catalog

String

制約が属するカタログ。

constraint_schema

String

制約を含むスキーマ。

constraint_name

String

名前。

table_catalog

String

制約が含まれるテーブル名。

table_schema

String

テーブルを含むスキーマ。

table_name

String

テーブル名。

constraint_type

String

制約の型。 "FOREIGN KEY" だけが許可されています。

is_deferrable

String

制約を遅延可能にするかどうかを指定します。 NO が返されます。

initially_deferred

String

制約を最初に遅延可能にするかどうかを指定します。 NO が返されます。

Indexes

ColumnName

DataType

説明

constraint_catalog

String

インデックスが属するカタログ。

constraint_schema

String

インデックスを含むスキーマ。

constraint_name

String

インデックス名。

table_catalog

String

インデックスが関連付けられているテーブル名。

table_schema

String

インデックスが関連付けられているテーブルを含むスキーマ。

table_name

String

テーブル名。

Indexes (SQL Server 2008)

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

ColumnName

DataType

説明

type_desc

String

インデックスの種類。次のいずれかの値になります。

  • HEAP

  • CLUSTERED

  • NONCLUSTERED

  • XML

  • SPATIAL

IndexColumns

ColumnName

DataType

説明

constraint_catalog

String

インデックスが属するカタログ。

constraint_schema

String

インデックスを含むスキーマ。

constraint_name

String

インデックス名。

table_catalog

String

インデックスが関連付けられているテーブル名。

table_schema

String

インデックスが関連付けられているテーブルを含むスキーマ。

table_name

String

テーブル名。

column_name

String

インデックスが関連付けられている列名。

ordinal_position

Int32

列の位置を示す序数。

KeyType

UInt16

オブジェクトの型。

Procedures

このコレクションは SQL Server 2000 以上でのみ使用できます。

ColumnName

DataType

説明

specific_catalog

String

カタログ固有の名前。

specific_schema

String

スキーマ固有の名前。

specific_name

String

カタログ固有の名前。

routine_catalog

String

ストアド プロシージャが属するカタログ。

routine_schema

String

ストアド プロシージャを含むスキーマ。

routine_name

String

ストアド プロシージャの名前。

routine_type

String

ストアド プロシージャには PROCEDURE が返され、関数には FUNCTION が返されます。

created

DateTime

プロシージャが作成された日時。

last_altered

DateTime

プロシージャの最終更新日時。

Procedure Parameters

ColumnName

DataType

説明

specific_catalog

String

このパラメーターを受け取るプロシージャのカタログ名。

specific_schema

String

このパラメーターを受け取るプロシージャを含むスキーマ。

specific_name

String

このパラメーターを受け取るとるプロシージャ名。

ordinal_position

Int16

パラメーターの位置を示す 1 から始まる序数。 プロシージャの戻り値については 0 になります。

parameter_mode

String

入力パラメーターでは IN が返され、出力パラメーターでは OUT が返され、I/O パラメーターでは INOUT が返されます。

is_result

String

プロシージャの結果が関数を表す場合には YES が返されます。 その他の場合は NO が返されます。

as_locator

String

ロケーターとして宣言された場合は YES が返されます。 その他の場合は NO が返されます。

parameter_name

String

パラメーターの名前。 関数の戻り値に相当する場合は NULL になります。

data_type

String

システムにより提供されるデータ型。

character_maximum_length

Int32

バイナリまたは文字データ型の文字列の最大長。 その他の場合は NULL が返されます。

character_octet_length

Int32

バイナリまたは文字データ型の最大バイト数。 その他の場合は NULL が返されます。

collation_catalog

String

パラメーター照合のカタログ名。 文字型の 1 つでない場合は、NULL が返されます。

collation_schema

String

常に NULL が返されます。

collation_name

String

パラメーター照合の名前。 文字型の 1 つでない場合は、NULL が返されます。

character_set_catalog

String

パラメーターの文字セットのカタログ名。 文字型の 1 つでない場合は、NULL が返されます。

character_set_schema

String

常に NULL が返されます。

character_set_name

String

パラメーターの文字セット名。 文字型の 1 つでない場合は、NULL が返されます。

numeric_precision

Byte

数値データの概数、正確な数値データ、整数データ、または通貨データの有効桁数。 その他の場合は NULL が返されます。

numeric_precision_radix

Int16

数値データの概数、正確な数値データ、整数データ、または通貨データの有効桁数の基数。 その他の場合は NULL が返されます。

numeric_scale

Int32

数値データの概数、正確な数値データ、整数データ、または通貨データの桁数。 その他の場合は NULL が返されます。

datetime_precision

Int16

パラメーターの型が datetime または smalldatetime である場合の秒数の小数部の有効桁数。 その他の場合は NULL が返されます。

interval_type

String

NULL。 将来 SQL Server で使用するために予約されています。

interval_precision

Int16

NULL。 将来 SQL Server で使用するために予約されています。

Tables

ColumnName

DataType

説明

table_catalog

String

テーブルのカタログ。

table_schema

String

テーブルを含むスキーマ。

table_name

String

テーブル名。

table_type

String

テーブルの型。 VIEW または BASE TABLE のいずれかです。

Columns

ColumnName

DataType

説明

table_catalog

String

テーブルのカタログ。

table_schema

String

テーブルを含むスキーマ。

table_name

String

テーブル名。

column_name

String

列名。

ordinal_position

Int16

列の識別番号。

column_default

String

列の既定値。

is_nullable

String

列に NULL 値が許容されるかどうかを指定します。 この列に NULL が許容される場合は、YES が返されます。 その他の場合は NO が返されます。

data_type

String

システムにより提供されるデータ型。

character_maximum_length

Int32 – Sql8、Int16 – Sql7

バイナリ データ、文字データ、またはテキストおよびイメージ データの最大文字列長。 その他の場合は NULL が返されます。

character_octet_length

Int32 – SQL8、Int16 – Sql7

バイナリ データ、文字データ、またはテキストおよびイメージ データの最大バイト長。 その他の場合は NULL が返されます。

numeric_precision

Unsigned Byte

数値データの概数、正確な数値データ、整数データ、または通貨データの有効桁数。 その他の場合は 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

String

常に NULL が返されます。

character_set_name

String

この列が文字データ型またはテキスト データ型である場合、文字セットの一意の名前が返されます。 その他の場合は NULL が返されます。

collation_catalog

String

列が文字データ型またはテキスト データ型である場合は、照合順序が定義されているデータベースを示すマスターが返されます。 その他の場合、この列は NULL になります。

Columns (SQL Server 2008)

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

ColumnName

DataType

説明

IS_FILESTREAM

String

列に FILESTREAM 属性がある場合は YES。

列には FILESTREAM 属性がない場合は NO。

IS_SPARSE

String

列がスパース列である場合は YES。

列がスパース列でない場合は NO。

IS_COLUMN_SET

String

列が列セットの列である場合は YES。

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

AllColumns (SQL Server 2008)

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

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

ColumnName

DataType

説明

table_catalog

String

テーブルのカタログ。

table_schema

String

テーブルを含むスキーマ。

table_name

String

テーブル名。

column_name

String

列名。

ordinal_position

Int16

列の識別番号。

column_default

String

列の既定値。

is_nullable

String

列に NULL 値が許容されるかどうかを指定します。 この列に NULL が許容される場合は、YES が返されます。 その他の場合は NO が返されます。

data_type

String

システムにより提供されるデータ型。

character_maximum_length

SQL Server 2000 以降では Int32、SQL Server 7.0 では Int16

バイナリ データ、文字データ、またはテキストおよびイメージ データの最大文字列長。 その他の場合は NULL が返されます。

character_octet_length

SQL Server 2000 以降では Int32、SQL Server 7.0 では Int16

バイナリ データ、文字データ、またはテキストおよびイメージ データの最大バイト長。 その他の場合は NULL が返されます。

numeric_precision

Unsigned Byte

数値データの概数、正確な数値データ、整数データ、または通貨データの有効桁数。 その他の場合は 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

String

常に NULL が返されます。

character_set_name

String

この列が文字データ型またはテキスト データ型である場合、文字セットの一意の名前が返されます。 その他の場合は NULL が返されます。

collation_catalog

String

列が文字データ型またはテキスト データ型である場合は、照合順序が定義されているデータベースを示すマスターが返されます。 その他の場合、この列は NULL になります。

IS_FILESTREAM

String

列に FILESTREAM 属性がある場合は YES。

列には FILESTREAM 属性がない場合は NO。

IS_SPARSE

String

列がスパース列である場合は YES。

列がスパース列でない場合は NO。

IS_COLUMN_SET

String

列が列セットの列である場合は YES。

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

ColumnSetColumns (SQL Server 2008)

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

ColumnName

DataType

説明

table_catalog

String

テーブルのカタログ。

table_schema

String

テーブルを含むスキーマ。

table_name

String

テーブル名。

column_name

String

列名。

ordinal_position

Int16

列の識別番号。

column_default

String

列の既定値。

is_nullable

String

列に NULL 値が許容されるかどうかを指定します。 この列に NULL が許容される場合は、YES が返されます。 その他の場合は NO が返されます。

data_type

String

システムにより提供されるデータ型。

character_maximum_length

SQL Server 2000 以降では Int32、SQL Server 7.0 では Int16

バイナリ データ、文字データ、またはテキストおよびイメージ データの最大文字列長。 その他の場合は NULL が返されます。

character_octet_length

SQL Server 2000 以降では Int32、SQL Server 7.0 では Int16

バイナリ データ、文字データ、またはテキストおよびイメージ データの最大バイト長。 その他の場合は NULL が返されます。

numeric_precision

Unsigned Byte

数値データの概数、正確な数値データ、整数データ、または通貨データの有効桁数。 その他の場合は 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

String

常に NULL が返されます。

character_set_name

String

この列が文字データ型またはテキスト データ型である場合、文字セットの一意の名前が返されます。 その他の場合は NULL が返されます。

collation_catalog

String

列が文字データ型またはテキスト データ型である場合は、照合順序が定義されているデータベースを示すマスターが返されます。 その他の場合、この列は NULL になります。

IS_FILESTREAM

String

列に FILESTREAM 属性がある場合は YES。

列には FILESTREAM 属性がない場合は NO。

IS_SPARSE

String

列がスパース列である場合は YES。

列がスパース列でない場合は NO。

IS_COLUMN_SET

String

列が列セットの列である場合は YES。

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

Users

ColumnName

DataType

説明

uid

Int16

このデータベースで一意のユーザー ID。 1 はデータベースの所有者です。

name

String

このデータベースで一意のユーザー名またはグループ名。

createdate

DateTime

アカウントが追加された日付。

updatedate

DateTime

アカウントが最後に変更された日付。

Views

このコレクションは SQL Server 2000 以上でのみ使用できます。

ColumnName

DataType

説明

table_catalog

String

ビューのカタログ。

table_schema

String

ビューを含むスキーマ。

table_name

String

ビューの名前。

check_option

String

WITH CHECK OPTION の型。 元のビューが WITH CHECK OPTION を使用して作成されている場合は CASCADE になります。 その他の場合は NONE が返されます。

is_updatable

String

ビューが更新可能であるかどうかを指定します。 常に NO が返されます。

ViewColumns

ColumnName

DataType

説明

view_catalog

String

ビューのカタログ。

view_schema

String

ビューを含むスキーマ。

view_name

String

ビューの名前。

table_catalog

String

このビューに関連付けられているテーブルのカタログ。

table_schema

String

このビューに関連付けられているテーブルを含むスキーマ。

table_name

String

ビューに関連付けられているテーブルの名前。 ベース テーブルになります。

column_name

String

列名。

UserDefinedTypes

このコレクションは SQL Server 2005 以上でのみ使用できます。

ColumnName

DataType

説明

assembly_name

String

アセンブリのファイル名。

UDT_name

String

アセンブリのクラス名。

version_major

Object

メジャー バージョン番号。

version_minor

Object

マイナー バージョン番号。

version_build

Object

ビルド番号。

version_revision

Object

リビジョン番号。

Culture_info

Object

この UDT に関連付けられているカルチャ情報。

Public_key

Object

このアセンブリで使用される公開キー。

Is_fixed_length

Boolean

型の長さを max_length と常に同じにするかどうかを指定します。

max_length

Int16

型の最大長 (バイト単位)。

permission_set_desc

String

アセンブリのアクセス許可セット/セキュリティ レベルのフレンドリ名。

create_date

DateTime

アセンブリが作成/登録された日付。

参照

その他の技術情報

データベース スキーマ情報の取得 (ADO.NET)