インデックス列
IndexColumnsスキーマコレクションは、インデックスとそれに対応する列を一覧表示します。インデックスでフィルタリングすることにより、クエリの応答時間を短縮して、より選択的なクエリを作成できます。
インデックス列情報の取得
このスキーマコレクションを取得するには、CompositeConnectionクラスのGetSchemaメソッドを呼び出します。テーブル名で結果を制限できます。次の例では、TDVテーブルProductsの各インデックスの列とシーケンス番号を取得します。
C#
String connectionString = "Host=myHost;Domain=myDomain;DataSource=myDataSource;User=myUser;Password=myPassword";
using (CompositeConnection conn = new CompositeConnection(connectionString)) {
conn.Open();
DataTable databaseSchema = conn.GetSchema("IndexColumns", new string[] {"Products"});
foreach (DataRow row in databaseSchema.Rows) {
Console.WriteLine(row["COLUMN_NAME"]);
Console.WriteLine(row["ORDINAL_POSITION"]);
}
}
VB.NET
Dim connectionString As String = "Host=myHost;Domain=myDomain;DataSource=myDataSource;User=myUser;Password=myPassword"
Using conn As New CompositeConnection(connectionString)
conn.Open()
Dim databaseSchema As DataTable = conn.GetSchema("IndexColumns", New String() {"Products"})
For Each row As DataRow In databaseSchema.Rows
Console.WriteLine(row["COLUMN_NAME"])
Console.WriteLine(row["ORDINAL_POSITION"])
Next
End Using
返された列
IndexColumnsスキーマコレクションは、次の列を返します。
列名 |
データタイプ |
説明 |
INDEX_CATALOG |
System.String |
インデックスを含むデータベースの名前。 |
INDEX_SCHEMA |
System.String |
インデックスを含むスキーマの名前。 |
TABLE_NAME |
System.String |
インデックスを含むテーブルの名前。 |
INDEX_NAME |
System.String |
インデックスの名前。 |
COLUMN_NAME |
System.String |
インデックスに関連付けられている列の名前。 |
ORDINAL_POSITION |
System.Int32 |
列のシーケンス番号。 |
SORT_ORDER |
System.Int32 |
昇順の場合はAを返し、降順の場合はDを返します。 |