SQL Server インデックスの削除

SQL Server Native Client OLE DB プロバイダでは、IIndexDefinition::DropIndex 関数が公開されます。コンシューマはこの関数を使用して、SQL Server テーブルからインデックスを削除できます。

SQL Server Native Client OLE DB プロバイダでは、一部の SQL Server PRIMARY KEY 制約と UNIQUE 制約がインデックスとして公開されます。テーブル所有者、データベース所有者、および一部の管理ロールのメンバは、SQL Server テーブルを変更して、制約を削除できます。既定では、テーブル所有者だけが既存のインデックスを削除できます。したがって、DropIndex が成功するか失敗するかは、アプリケーション ユーザーのアクセス権だけでなく、指定されたインデックスの種類によっても異なります。

テーブル名は、pTableID パラメータの uName 共用体の pwszName メンバに Unicode 文字列で指定します。pTableIDeKind メンバを DBKIND_NAME にする必要があります。

インデックス名は、pIndexID パラメータの uName 共用体の pwszName メンバに Unicode 文字列で指定します。pIndexIDeKind メンバを DBKIND_NAME にする必要があります。SQL Server Native Client OLE DB プロバイダでは、pIndexID が NULL の場合にテーブルのすべてのインデックスを削除する OLE DB 機能はサポートされません。pIndexID が NULL の場合、E_INVALIDARG を返します。