SQL Server スキーマ コレクション
Microsoft .NET Framework Data Provider for SQL Server は、共通のスキーマ コレクションに加えて追加のスキーマ コレクションをサポートしています。 スキーマ コレクションは、使用している SQL Server のバージョンによって多少異なります。 サポートされるスキーマ コレクションの一覧を確認するには、引数を指定しないで、またはスキーマ コレクション名に "MetaDataCollections" を指定して、GetSchema メソッドを呼び出します。 これにより、サポートされるスキーマ コレクションの一覧、それぞれがサポートする制限数、および使用する識別子部分の数と共に、DataTable が返されます。
データベース
ColumnName | DataType | 説明 |
---|---|---|
database_name | String | データベース名。 |
dbid | Int16 | データベース ID。 |
create_date | DateTime | データベースの作成日。 |
外部キー
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 | テーブル名。 |
index_name | String | インデックス名。 |
Indexes (SQL Server 2008)
.NET Framework 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 | Byte | オブジェクトの型。 |
index_name | String | インデックス名。 |
プロシージャ
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 | Int32 | パラメーターの位置を示す 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 で使用するために予約されています。 |
[テーブル]
ColumnName | DataType | 説明 |
---|---|---|
TABLE_CATALOG | String | テーブルのカタログ。 |
TABLE_SCHEMA | String | テーブルを含むスキーマ。 |
TABLE_NAME | String | テーブル名。 |
TABLE_TYPE | String | テーブルの型。 VIEW または BASE TABLE のいずれかです。 |
列
ColumnName | DataType | 説明 |
---|---|---|
TABLE_CATALOG | String | テーブルのカタログ。 |
TABLE_SCHEMA | String | テーブルを含むスキーマ。 |
TABLE_NAME | String | テーブル名。 |
COLUMN_NAME | String | 列名。 |
ORDINAL_POSITION | Int32 | 列の識別番号。 |
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 | Int32 | 列の識別番号。 |
COLUMN_DEFAULT | String | 列の既定値。 |
IS_NULLABLE | String | 列に NULL 値が許容されるかどうかを指定します。 この列に NULL が許容される場合は、YES が返されます。 その他の場合は NO が返されます。 |
DATA_TYPE | String | システムにより提供されるデータ型。 |
CHARACTER_MAXIMUM_LENGTH | Int32 | バイナリ データ、文字データ、またはテキストおよびイメージ データの最大文字列長。 その他の場合は NULL が返されます。 |
CHARACTER_OCTET_LENGTH | Int32 | バイナリ データ、文字データ、またはテキストおよびイメージ データの最大バイト長。 その他の場合は 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 | Int32 | 列の識別番号。 |
COLUMN_DEFAULT | String | 列の既定値。 |
IS_NULLABLE | String | 列に NULL 値が許容されるかどうかを指定します。 この列に NULL が許容される場合は、YES が返されます。 その他の場合は NO が返されます。 |
DATA_TYPE | String | システムにより提供されるデータ型。 |
CHARACTER_MAXIMUM_LENGTH | Int32 | バイナリ データ、文字データ、またはテキストおよびイメージ データの最大文字列長。 その他の場合は NULL が返されます。 |
CHARACTER_OCTET_LENGTH | Int32 | バイナリ データ、文字データ、またはテキストおよびイメージ データの最大バイト長。 その他の場合は 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 はデータベースの所有者です。 |
user_name | String | このデータベースで一意のユーザー名またはグループ名。 |
createdate | DateTime | アカウントが追加された日付。 |
updatedate | DateTime | アカウントが最後に変更された日付。 |
Views
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
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 | ブール型 | 型の長さを max_length と常に同じにするかどうかを指定します。 |
max_length | Int16 | 型の最大長 (バイト単位)。 |
Create_Date | DateTime | アセンブリが作成/登録された日付。 |
Permission_set_desc | String | アセンブリのアクセス許可セット/セキュリティ レベルのフレンドリ名。 |