Bagikan melalui


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.

Konvensi sintaks transact-SQL

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).

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

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