既存の選択的 XML インデックスによってインデックスが既に作成されている単一のパスに、選択的新しいセカンダリ XML インデックスを作成します。
詳細については、次の各トピックを参照してください。
選択的プライマリ XML インデックスを作成することもできます。 詳細については、「選択的 XML インデックスの作成、変更、および削除」を参照してください。
構文
CREATE XML INDEX index_name
ON <table_object> (xml_column_name)
USING XML INDEX sxi_index_name
FOR (<xquery_or_sql_values_path>)
[WITH (<index_options>)]
<table_object> ::= { [ database_name. [ schema_name ] . | schema_name. ] table_name }
<xquery_or_sql_values_path>::= <path_name>
<path_name> ::= <character string literal>
<xmlnamespace_list> ::= <xmlnamespace_item> [, <xmlnamespace_list>]
<xmlnamespace_item> ::= xmlnamespace_uri AS xmlnamespace_prefix
<index_options> ::= (
| PAD_INDEX = { ON | OFF }
| FILLFACTOR = fillfactor
| SORT_IN_TEMPDB = { ON | OFF }
| IGNORE_DUP_KEY =OFF
| DROP_EXISTING = { ON | OFF }
| ONLINE = OFF
| ALLOW_ROW_LOCKS = { ON | OFF }
| ALLOW_PAGE_LOCKS = { ON | OFF }
| MAXDOP = max_degree_of_parallelism
)
引数
CREATE 句
- index_name
作成する新しいインデックスの名前を指定します。 インデックス名は、テーブル内では一意である必要がありますが、データベース内で一意である必要はありません。 インデックス名は、識別子のルールに従っている必要があります。
例: CREATE XML INDEX filt_sxi_index_c
ON 句
<table_object>
インデックスを作成する XML 列が含まれるテーブルを指定します。 次の形式を使用できます。database_name.schema_name.table_name
database_name..table_name
schema_name.table_name
xml_column_name
インデックスを作成するパスが含まれる XML 列の名前を指定します。
例: ON Tbl(xmlcol)
USING XML INDEX 句
- sxi_index_name
選択的 XML インデックスの名前を指定します。
例: USING XML INDEX sxi_index
FOR 句
- <xquery_or_sql_values_path>
選択的なセカンダリ XML インデックスを作成するインデックス作成済みパスの名前を指定します。 インデックスを作成するパスは、CREATE SELECTIVE XML INDEX ステートメントで割り当てられた名前です。 詳細については、「CREATE SELECTIVE XML INDEX」を参照してください。
例:
FOR
(
pathabc
)
WITH 句
- <index_options>
インデックス オプションについては、「CREATE XML INDEX (選択的 XML インデックス)」を参照してください。
解説
ベース テーブルの各 XML 列に複数の選択的セカンダリ XML インデックスを作成できます。
制限事項と制約事項
XML 列に選択的セカンダリ XML インデックスを作成するには、その列に選択的 XML インデックスが存在している必要があります。
セキュリティ
権限
テーブルまたはビューに対する ALTER 権限が必要です。 実行するには、固定サーバー ロール sysadmin または、固定データベース ロール db_ddladmin および db_owner のメンバーである必要があります。
使用例
次の例では、パス 'pathabc' に選択的セカンダリ XML インデックスを作成します。 インデックスを作成するパスは、CREATE SELECTIVE XML INDEX で割り当てられた名前です。
CREATE XML INDEX filt_sxi_index_c
ON Tbl(xmlcol)
USING XML INDEX sxi_index
FOR
(
pathabc
)