インデックスカラム
IndexColumns スキーマコレクションは、インデックスとそれに対応するカラムをリストします。インデックスをフィルタリングすることで、より高速なクエリ応答時間でセレクティブクエリを記述できます。
Index カラム情報の取得
このスキーマコレクションを取得するには、PingOneConnection クラスのGetSchema メソッドを呼び出します。結果は、テーブル名に基づいて制限できます。次の例では、PingOne テーブル[CData].[Administrators].Users の各インデックスのカラムとシーケンス番号を取得します。
C#
String connectionString = "AuthScheme=OAuth;InitiateOAuth=GETANDREFRESH;WorkerAppEnvironmentId=eebc33a8-xxxx-4f3a-yyyy-d3e5262fd49e;Region=NA;OAuthClientId=client_id;OAuthClientSecret=client_secret;";
using (PingOneConnection conn = new PingOneConnection(connectionString)) {
conn.Open();
DataTable databaseSchema = conn.GetSchema("IndexColumns", new string[] {"CData","Administrators","Users"});
foreach (DataRow row in databaseSchema.Rows) {
Console.WriteLine(row["COLUMN_NAME"]);
Console.WriteLine(row["ORDINAL_POSITION"]);
}
}
VB.NET
Dim connectionString As String = "AuthScheme=OAuth;InitiateOAuth=GETANDREFRESH;WorkerAppEnvironmentId=eebc33a8-xxxx-4f3a-yyyy-d3e5262fd49e;Region=NA;OAuthClientId=client_id;OAuthClientSecret=client_secret;"
Using conn As New PingOneConnection(connectionString)
conn.Open()
Dim databaseSchema As DataTable = conn.GetSchema("IndexColumns", New String() {"CData","Administrators","Users"})
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 を返します。 |