ALTER INDEX (Indeks XML Selektif)
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Memodifikasi indeks XML selektif yang ada. Pernyataan ALTER INDEX mengubah satu atau beberapa item berikut:
Daftar jalur terindeks (klausa FOR).
Daftar namespace (DENGAN klausa XMLNAMESPACES).
Opsi indeks (klausa WITH).
Anda tidak dapat mengubah indeks XML selektif sekunder. Untuk informasi selengkapnya, lihat Membuat, Mengubah, dan Menghilangkan Indeks XML Selektif Sekunder.
Sintaks
ALTER INDEX index_name
ON <table_object>
[WITH XMLNAMESPACES ( <xmlnamespace_list> )]
FOR ( <promoted_node_path_action_list> )
[WITH ( <index_options> )]
<table_object> ::=
{ database_name.schema_name.table_name | schema_name.table_name | table_name }
<promoted_node_path_action_list> ::=
<promoted_node_path_action_item> [, <promoted_node_path_action_list>]
<promoted_node_path_action_item>::=
<add_node_path_item_action> | <remove_node_path_item_action>
<add_node_path_item_action> ::=
ADD <path_name> = <promoted_node_path_item>
<promoted_node_path_item>::=
<xquery_node_path_item> | <sql_values_node_path_item>
<remove_node_path_item_action> ::= REMOVE <path_name>
<path_name_or_typed_node_path>::=
<path_name> | <typed_node_path>
<typed_node_path> ::=
<node_path> [[AS XQUERY <xsd_type_ext>] | [AS SQL <sql_type>]]
<xquery_node_path_item> ::=
<node_path> [AS XQUERY <xsd_type_or_node_hint>] [SINGLETON]
<xsd_type_or_node_hint> ::=
[<xsd_type>] [MAXLENGTH(x)] | 'node()'
<sql_values_node_path_item> ::=
<node_path> AS SQL <sql_type> [SINGLETON]
<node_path> ::=
character_string_literal
<xsd_type_ext> ::=
character_string_literal
<sql_type> ::=
identifier
<path_name> ::=
identifier
<xmlnamespace_list> ::=
<xmlnamespace_item> [, <xmlnamespace_list>]
<xmlnamespace_item> ::=
<xmlnamespace_uri> AS <xmlnamespace_prefix>
<xml_namespace_uri> ::= character_string_literal
<xml_namespace_prefix> ::= identifier
<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
)
Argumen
index_name
Adalah nama indeks yang ada untuk diubah.
<table_object>
Adalah tabel yang berisi kolom XML untuk diindeks. Gunakan salah satu format berikut:
database_name.schema_name.table_name
database_name..table_name
schema_name.table_name
table_name
[DENGAN XMLNAMESPACES (<xmlnamespace_list>)]
Adalah daftar namespace layanan yang digunakan oleh jalur untuk mengindeks. Untuk informasi tentang sintaksis klausa WITH XMLNAMESPACES, lihat WITH XMLNAMESPACES (Transact-SQL).
FOR (<promoted_node_path_action_list>)
Adalah daftar jalur terindeks untuk ditambahkan atau dihapus.
TAMBAHKAN jalur. Saat Anda MENAMBAHKAN jalur, Anda menggunakan sintaks yang sama yang digunakan untuk membuat jalur dengan pernyataan CREATE SELECTIVE XML INDEX. Untuk informasi tentang jalur yang bisa Anda tentukan dalam pernyataan CREATE atau ALTER, lihat Menentukan Jalur dan Petunjuk Pengoptimalan untuk Indeks XML Selektif.
HAPUS jalur. Saat Menghapus jalur, Anda memberikan nama yang diberikan ke jalur saat dibuat.
[DENGAN (<index_options>)]
Anda hanya dapat menentukan <index_options> saat menggunakan ALTER INDEX tanpa klausa FOR. Saat Anda menggunakan ALTER INDEX untuk menambahkan atau menghapus jalur dalam indeks, opsi indeks bukan argumen yang valid. Untuk informasi tentang opsi indeks, lihat MEMBUAT INDEKS XML (Indeks XML Selektif).
Keterangan
Penting
Saat Anda menjalankan pernyataan ALTER INDEX, indeks XML selektif selalu dibangun kembali. Pastikan untuk mempertimbangkan dampak proses ini pada sumber daya server.
Keamanan
Izin
Izin ALTER pada tabel atau tampilan diperlukan untuk menjalankan ALTER INDEX.
Contoh
Contoh berikut menunjukkan pernyataan ALTER INDEX. Pernyataan ini menambahkan jalur '/a/b/m'
ke bagian XQuery dari indeks dan menghapus jalur '/a/b/e'
dari bagian SQL dari indeks yang dibuat dalam contoh dalam topik CREATE SELECTIVE XML INDEX (Transact-SQL). Jalur yang akan dihapus diidentifikasi dengan nama yang diberikan saat dibuat.
ALTER INDEX sxi_index
ON Tbl
FOR
(
ADD pathm = '/a/b/m' as XQUERY 'node()' ,
REMOVE pathabe
);
Contoh berikut menunjukkan pernyataan ALTER INDEX yang menentukan opsi indeks. Opsi indeks diizinkan karena pernyataan tidak menggunakan klausa FOR untuk menambahkan atau menghapus jalur.
ALTER INDEX sxi_index
ON Tbl
PAD_INDEX = ON;
Lihat Juga
Indeks XML Selektif (SXI)
Membuat, Mengubah, dan Menghilangkan Indeks XML Selektif
Tentukan Jalur dan Petunjuk Pengoptimalan untuk Indeks XML Selektif