選択的 XML インデックスの作成、変更、および削除

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

この記事では、新しい選択的 XML インデックスの作成や、既存の選択的 XML インデックスの変更または削除を行う方法について説明します。

選択的 XML インデックスの詳細については、「選択的 XML インデックス (SXI)」を参照してください。

選択的 XML インデックスの作成

CREATE SELECTIVE XML INDEX ステートメントを呼び出して、Transact-SQL を使用して選択的 XML インデックスを作成します。 詳細については、「CREATE SELECTIVE XML INDEX (Transact-SQL)」を参照してください。

次の例では、選択的 XML インデックスを作成するための構文を示しています。 また、インデックスを作成するパスと省略可能な最適化ヒントを指定する構文のいくつかのバリエーションを示します。

CREATE SELECTIVE XML INDEX sxi_index
ON Tbl(xmlcol)

FOR(
    pathab   = '/a/b' as XQUERY 'node()'
    pathabc  = '/a/b/c' as XQUERY 'xs:double',
    pathdtext = '/a/b/d/text()' as XQUERY 'xs:string' MAXLENGTH(200) SINGLETON
    pathabe = '/a/b/e' as SQL NVARCHAR(100)
)

選択的 XML インデックスを変更する

ALTER INDEX ステートメントを呼び出して、Transact-SQL を使用して既存の選択的 XML インデックスを変更します。 詳細については、「ALTER INDEX (選択的 XML インデックス)」を参照してください。

ALTER INDEX ステートメントの例を次に示します。 このステートメントは、インデックスの XQuery の部分にパス '/a/b/m' を追加し、「CREATE SELECTIVE XML INDEX (Transact-SQL)」の記事の例で作成したインデックスの SQL の部分からパス '/a/b/e' を削除します。 削除するパスは、作成時に指定された名前によって識別されます。

ALTER INDEX sxi_index
ON Tbl
FOR
(
    ADD pathm = '/a/b/m' as XQUERY 'node()' ,
    REMOVE pathabe
)

選択的 XML インデックスを削除する

DROP INDEX ステートメントを呼び出して、Transact-SQL を使用して選択的 XML インデックスを削除します。 詳細については、「DROP INDEX (選択的 XML インデックス)」を参照してください。

DROP INDEX ステートメントの例を次に示します。

DROP INDEX sxi_index ON tbl

関連項目