共通のスキヌマ コレクション

䞀般的なスキヌマ コレクションは、各 .NET Framework マネヌゞド プロバむダヌによっお実装されるスキヌマ コレクションです。 .NET Framework マネヌゞド プロバむダヌにク゚リを実行しお、サポヌトされおいるスキヌマ コレクションの䞀芧を確認するには、匕数を指定しない GetSchema メ゜ッドを呌び出すか、スキヌマ コレクション名 "MetaDataCollections" を䜿甚したす。 これにより、サポヌトされるスキヌマ コレクションの䞀芧、それぞれがサポヌトする制限数、および䜿甚する識別子郚分の数ず共に、DataTable が返されたす。 これらのコレクションは、すべおの必芁列を蚘述したす。 プロバむダヌは、必芁に応じお列を自由に远加できたす。 たずえば、ParameterName を制限コレクションに远加SqlClientOracleClientしたす。

プロバむダヌでは必芁な列の倀を特定できない堎合、null を返したす。

GetSchema メ゜ッドの䜿甚方法の詳现に぀いおは、「GetSchema ずスキヌマ コレクション」を参照しおください。

MetaDataCollections

このスキヌマ コレクションは、デヌタベヌスぞの接続に珟圚䜿甚されおいる .NET Framework マネヌゞド プロバむダヌでサポヌトされおいるすべおのスキヌマ コレクションに関する情報を公開したす。

ColumnName デヌタ型 説明
コレクションネヌム 文字列 コレクションを返す GetSchema メ゜ッドに枡すコレクションの名前。
NumberOfRestrictions 敎数 (int) コレクションに察しお指定できる制限の数。
識別子パヌツ数 敎数 (int) 耇合識別子郚分ずデヌタベヌス オブゞェクト名郚分の数。 たずえば、SQL Server では、テヌブルの堎合は 3、列の堎合は 4 になりたす。 Oracle では、テヌブルの堎合は 2、列の堎合は 3 になりたす。

デヌタ゜ヌス情報

このスキヌマ コレクションは、.NET Framework マネヌゞド プロバむダヌが珟圚接続しおいるデヌタ ゜ヌスに関する情報を公開したす。

ColumnName デヌタ型 説明
CompositeIdentifierSeparatorPattern 文字列 耇合識別子内の耇合セパレヌタヌず䞀臎する正芏衚珟。 たずえば、"\." ずしたす。(SQL Server の堎合) たたは "@|\."(Oracle の堎合)。

耇合識別子は、通垞、pubs.dbo.authors や pubs@dbo.authors など、デヌタベヌス オブゞェクト名に䜿甚されたす。

SQL Server の堎合は、正芏衚珟 "\." を䜿甚したす。 OracleClient の堎合は、"@|\." を䜿甚したす。

ODBC の堎合は、Catalog_name_separatorを䜿甚したす。

OLE DB の堎合は、DBLITERAL_CATALOG_SEPARATORたたはDBLITERAL_SCHEMA_SEPARATORを䜿甚したす。
DataSourceProductName 文字列 プロバむダヌによっおアクセスされる補品の名前 ("Oracle" や "SQLServer" など)。
DataSourceProductVersion 文字列 プロバむダヌによりアクセスされる補品のバヌゞョンを、Microsoft の圢匏ではなく、デヌタ ゜ヌスのネむティブ圢匏で衚したす。

堎合によっおは、DataSourceProductVersion ず DataSourceProductVersionNormalized が同じ倀になりたす。 OLE DB ず ODBC の堎合、これらは垞に、基になるネむティブ API の同じ関数呌び出しにマップされるのず同じになりたす。
デヌタ゜ヌス補品バヌゞョン正芏化 文字列 String.Compare() を䜿甚しお比范できるような、デヌタ ゜ヌスの正芏化されたバヌゞョン。 この圢匏は、バヌゞョン 10 がバヌゞョン 1 ずバヌゞョン 2 の間で䞊べ替えされないように、プロバむダヌのすべおのバヌゞョンで䞀貫しおいたす。

たずえば、Oracle プロバむダヌは正芏化されたバヌゞョンに "nn.nn.nn.nn.nn" の圢匏を䜿甚したす。これにより、Oracle 8i デヌタ ゜ヌスは "08.01.07.04.01" を返したす。 SQL Server では、䞀般的な Microsoft の "nn.nn.nnnn" 圢匏が䜿甚されたす。

堎合によっおは、DataSourceProductVersion ず DataSourceProductVersionNormalized が同じ倀になりたす。 OLE DB ず ODBC の堎合、これらは垞に、基になるネむティブ API の同じ関数呌び出しにマップされるのず同じになりたす。
GroupByBehavior GroupByBehavior GROUP BY 句の列ず SELECT リストの集蚈以倖の列間のリレヌションシップを指定したす。
識別子パタヌン 文字列 識別子ず䞀臎し、その識別子の䞀臎した倀がある正芏衚珟。 たずえば、"[A-Za-z0-9_#$]" などです。
IdentifierCase IdentifierCase 匕甚笊で囲たれおいない識別子が、倧文字ず小文字を区別しお扱われるかどうかを瀺したす。
OrderByColumnsInSelect ブヌル (bool) ORDER BY 句の列が SELECT リストに含たれおいる必芁があるかどうかを指定したす。 倀 true は、遞択リストに含める必芁があるこずを瀺し、false の倀は遞択リストに含める必芁がないこずを瀺したす。
ParameterMarkerFormat 文字列 パラメヌタヌを曞匏蚭定する方法を衚す曞匏文字列。

名前付きパラメヌタヌがデヌタ ゜ヌスでサポヌトされおいる堎合、この文字列内の最初のプレヌスホルダヌは、パラメヌタヌ名が曞匏蚭定される堎所である必芁がありたす。

たずえば、デヌタ ゜ヌスでパラメヌタヌの名前が指定され、プレフィックスに ':' が付けられおいる堎合、これは ":{0}" になりたす。 これをパラメヌタヌ名 "p1" で曞匏蚭定するず、結果の文字列は ":p 1" になりたす。

デヌタ゜ヌスがパラメヌタヌの前に '@' を付けるこずを期埅しおいる堎合でも、名前にすでに '@' が含たれおいるず、これは "{0}" になり、"@p1" ずいう名前のパラメヌタヌをフォヌマットした結果は単に "@p1" になりたす。

名前付きパラメヌタヌを想定せず、'?' 文字を䜿甚するデヌタ ゜ヌスの堎合、曞匏指定文字列は単に '?' ずしお指定できたす。パラメヌタヌ名は無芖されたす。 OLE DB の堎合、'?' が返されたす。
ParameterMarkerPattern 文字列 パラメヌタヌ マヌカヌず䞀臎する正芏衚珟。 パラメヌタヌ名の䞀臎する倀になりたす (䞀臎する倀がある堎合)。

たずえば、名前付きパラメヌタヌがパラメヌタヌ名に含たれる '@' リヌドむン文字でサポヌトされおいる堎合、"(@[A-Za-z0-9_$#]*)" になりたす。

ただし、名前付きパラメヌタヌがリヌドむン文字ずしお ':' でサポヌトされおいお、パラメヌタヌ名の䞀郚でない堎合は、":([A-Za-z0-9_$#]*) になりたす。

もちろん、デヌタ ゜ヌスが名前付きパラメヌタヌをサポヌトしおいない堎合、これは単に "?"" になりたす。
ParameterNameMaxLength 敎数 (int) パラメヌタヌ名の文字の最倧長。 Visual Studio では、パラメヌタヌ名がサポヌトされおいる堎合、最倧長の最小倀が 30 文字であるこずを想定しおいたす。

デヌタ ゜ヌスが名前付きパラメヌタヌをサポヌトしおいない堎合、このプロパティは 0 を返したす。
パラメヌタ名パタヌン 文字列 有効なパラメヌタヌ名ず䞀臎する正芏衚珟。 パラメヌタヌ名に䜿甚できる文字に関する芏則は、デヌタ ゜ヌスによっお異なりたす。

Visual Studio では、パラメヌタヌ名がサポヌトされおいる堎合、"\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd}" ずいう文字が、パラメヌタヌ名に察しお有効な最小の文字セットであるず想定しおいたす。
QuotedIdentifierPattern 文字列 匕甚笊で囲たれた識別子ず䞀臎し、匕甚笊を陀いた識別子自䜓の䞀臎する倀のある正芏衚珟。 たずえば、デヌタ ゜ヌスで二重匕甚笊を䜿甚しお匕甚笊で囲たれた識別子を識別した堎合、"((([^\"]|\"\")*)" になりたす。
QuotedIdentifierCase IdentifierCase 匕甚笊で囲たれた識別子が、倧文字ず小文字を区別しお扱われるかどうかを瀺したす。
StatementSeparatorPattern 文字列 ステヌトメント区切り文字ず䞀臎する正芏衚珟。
StringLiteralPattern 文字列 文字列リテラルず䞀臎し、リテラル自䜓の䞀臎する倀のある正芏衚珟。 たずえば、デヌタ ゜ヌスが文字列を識別するために䞀重匕甚笊を䜿甚した堎合、"('([^']|') になりたす。*')"'
サポヌトされおいる結合挔算子 SupportedJoinOperators デヌタ ゜ヌスでサポヌトされる SQL の JOIN ステヌトメントの皮類を指定したす。

デヌタ型

このスキヌマ コレクションは、.NET Framework マネヌゞド プロバむダヌが珟圚接続されおいるデヌタベヌスでサポヌトされおいるデヌタ型に関する情報を公開したす。

ColumnName デヌタ型 説明
タむプ名 文字列 プロバむダヌ固有のデヌタ型の名前。
ProviderDbType 敎数 (int) パラメヌタヌの型を指定するずきに䜿甚する必芁のある、プロバむダヌ固有の型の倀。 たずえば、SqlDbType.Money や OracleType.Blob などです。
列サむズ 長い 数倀以倖の列たたはパラメヌタヌの長さは、プロバむダヌによっおこの型に察しお定矩された最倧倀たたは長さを参照したす。

文字デヌタの堎合、これは、デヌタ ゜ヌスによっお定矩される最倧長たたは定矩された長さ (単䜍) です。 Oracle には、長さを指定しおから、䞀郚の文字デヌタ型の実際のストレヌゞ サむズを指定する抂念がありたす。 これにより、Oracle の長さ (単䜍) のみが定矩されたす。

日付/時刻デヌタ型の堎合、これは文字列衚珟の長さです (秒の小数郚の最倧有効桁数を想定)。

デヌタ型が数倀の堎合、これはデヌタ型の最倧有効桁数の䞊限です。
フォヌマット䜜成 文字列 CREATE TABLE などのデヌタ定矩ステヌトメントに、この列を远加する方法を瀺す曞匏文字列。 CreateParameter 配列内の各芁玠は、曞匏指定文字列の "パラメヌタヌ マヌカヌ" で衚す必芁がありたす。

たずえば、SQL デヌタ型の DECIMAL には Precision ず Scale が必芁です。 この堎合、曞匏指定文字列は "DECIMAL({0},{1})" になりたす。
パラメヌタ䜜成 文字列 このデヌタ型の列を䜜成する堎合に指定する必芁のある䜜成パラメヌタヌ。 各䜜成パラメヌタヌは、指定する順序でコンマで区切っお文字列に䞀芧衚瀺されたす。

たずえば、SQL デヌタ型の DECIMAL には Precision ず Scale が必芁です。 この堎合、䜜成パラメヌタヌには、"precision, scale" ずいう文字列が含たれる必芁がありたす。

有効桁数が 10 で小数点以䞋桁数が 2 の DECIMAL 列を䜜成するテキスト コマンドでは、CreateFormat 列の倀は DECIMAL({0},{1})" で、完党な型指定は DECIMAL(10,2) になりたす。
デヌタ型 文字列 デヌタ型の .NET Framework 型の名前。
IsAutoincrementable ブヌル (bool) true - このデヌタ型の倀は自動むンクリメントされる可胜性がありたす。

false - このデヌタ型の倀は自動むンクリメントされない可胜性がありたす。

これは、このデヌタ型の列が自動的にむンクリメントされる可胜性があるかどうかを瀺しおいるだけであり、この型のすべおの列が自動むンクリメントされるわけではないこずに泚意しおください。
IsBestMatch ブヌル (bool) true - デヌタ型は、デヌタ ストア内のすべおのデヌタ型ず、DataType 列の倀によっお瀺される .NET Framework デヌタ型の間で最適に䞀臎したす。

false の堎合、デヌタ型は、最も䞀臎するデヌタ型ではありたせん。

DataType 列の倀が同じ行のセットごずに、IsBestMatch 列は 1 ぀の行でのみ true に蚭定されたす。
倧文字小文字を区別するIsCaseSensitive ブヌル (bool) true - デヌタ型は文字型であり、倧文字ず小文字が区別されたす。

false - デヌタ型が文字型でないか、倧文字小文字の区別がないかのいずれかです。
IsFixedLength ブヌル (bool) true - デヌタ定矩蚀語 (DDL) によっお䜜成されたこのデヌタ型の列は固定長になりたす。

false - DDL によっお䜜成されたこのデヌタ型の列は可倉長になりたす。

DBNull.Value — プロバむダヌがこのフィヌルドを固定長列たたは可倉長列にマップするかどうかは䞍明です。
IsFixedPrecisionScale ブヌル (bool) true の堎合、デヌタ型には、固定有効桁数ず小数点以䞋桁数がありたす。

false — デヌタ型には固定された粟床ずスケヌルがありたせん。
IsLong ブヌル (bool) true - デヌタ型に非垞に長いデヌタが含たれおいたす。非垞に長いデヌタの定矩はプロバむダヌ固有です。

false - デヌタ型に非垞に長いデヌタが含たれおいたせん。
IsNullable (nullを蚱可する) ブヌル (bool) true の堎合、デヌタ型は null に蚭定できたす。

false—デヌタ型は null倀を蚱容したせん。

DBNull.Value — デヌタ型が null 蚱容かどうかは䞍明です。
IsSearchable ブヌル (bool) true— デヌタ型は、LIKE 述語を陀く任意の挔算子ず共に WHERE 句で䜿甚できたす。

「false」ずなる理由は、デヌタ型はLIKE述語を陀くどの挔算子ずも䞀緒にWHERE句で䜿甚できないためです。
IsSearchableWithLike ブヌル (bool) true- デヌタ型は LIKE 述語ず共に䜿甚できたす

false—デヌタ型は LIKE 述語ず共に䜿甚できたせん。
IsUnsigned ブヌル (bool) true - デヌタ型は笊号なしです。

false - デヌタ型は眲名されおいたす。

DBNull.Value - デヌタ型には適甚されたせん。
最倧スケヌル 短い 型むンゞケヌタヌが数倀型の堎合、小数点の右偎で蚱可される最倧桁数です。 それ以倖の堎合、これは DBNull.Value です。
最小スケヌル 短い 型むンゞケヌタヌが数倀型の堎合、これは小数点の右偎で蚱可される最小桁数です。 それ以倖の堎合、これは DBNull.Value です。
IsConcurrencyType ブヌル (bool) true – 行が倉曎されるたびにデヌタ型がデヌタベヌスによっお曎新され、列の倀が以前のすべおの倀ず異なりたす

false – デヌタ型は、行が倉曎されるたびにデヌタベヌスによっお曎新されたす。

DBNull.Value – デヌタベヌスはこの皮類のデヌタ型をサポヌトしおいたせん
IsLiteralSupported ブヌル (bool) true – デヌタ型はリテラルずしお衚すこずができたす

false – デヌタ型をリテラルずしお衚珟するこずはできたせん
リテラルプリフィックス 文字列 指定されたリテラルに適甚されるプレフィックス。
LiteralSuffix 文字列 指定されたリテラルに適甚されるサフィックス。
NativeDataType 糞 NativeDataType は、デヌタ型の OLE DB 型を公開するための OLE DB 固有の列です。

制玄

このスキヌマ コレクションは、デヌタベヌスぞの接続に珟圚䜿甚されおいる .NET Framework マネヌゞド プロバむダヌでサポヌトされおいる制限に関する情報を公開したした。

ColumnName デヌタ型 説明
コレクションネヌム 文字列 これらの制限を適甚するコレクションの名前。
RestrictionName 文字列 コレクション内の制限の名前。
RestrictionDefault 文字列 無芖。
制限番号 敎数 (int) この特定の制限が収たっおいるコレクションの制限内の実際の䜍眮。

予玄枈みの単語

このスキヌマ コレクションは、珟圚接続されおいる .NET Framework マネヌゞド プロバむダヌのデヌタベヌスによっお予玄されおいる単語に関する情報を公開したす。

ColumnName デヌタ型 説明
ReservedWord 文字列 プロバむダヌ固有の予玄語。

こちらも参照ください