Megosztás a következőn keresztül:


ALTER INDEX (Szelektív XML indexek)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Módosítja a meglévő szelektív XML indexet. Az ALTER INDEX állítás az alábbi elemek közül egy vagy több elemet változtat:

  • Az indexelt utak listája (FOR).

  • A névterek listája (WITH XMLNAMESPACES záradék).

  • Az index opciók (WITH záradék).

Nem lehet másodlagos szelektív XML indexeket megváltoztatni. További információért lásd: Másodlagos szelektív XML indexek létrehozása, módosítása és eldobása.

Transact-SQL szintaxis konvenciók

Szemantika

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  
)  

Arguments

index_name
A meglévő index, amit módosítani kell.

<table_object>
Az a táblázat, amely tartalmazza az indexhez szükséges XML oszlopot. Használd az alábbi formátumok egyikét:

  • database_name.schema_name.table_name

  • database_name..table_name

  • schema_name.table_name

  • table_name

[XMLNAMESPACES (<xmlnamespace_list>)]
Az indexeléshez szükséges útvonalak névtereinek listája. A WITH XMLNAMESPACES klauzula szintaxisáról információért lásd: WITH XMLNAMESPACES (Transact-SQL).

FOR (<promoted_node_path_action_list>)
Az indexelt útvonalak listája, amiket hozzáadni vagy eltávolítani?

  • ADD hozzá egy útvonalat. Amikor HOZZÁADSZ egy útvonalat, ugyanazt a szintaxist használod, amit a CREATE SELECTIVE XML INDEX utasítással az útvonalak létrehozásához használnak. A CREATE vagy ALTER utasításban beállítható utak részletéért lásd: Specific-XML indexek útvonalak és optimalizációs tippek meghatározása.

  • TÁVOLÍTSD el az útvonalat. Amikor ELTÁVOLÍTASZ egy útvonalat, megadod azt a nevet, amit az út létrehozásakor kaptál.

[WITH (<index_options>)]
Csak akkor tudod <megadni index_options> , amikor az ALTER INDEX-et használod FOR klauzula nélkül. Amikor az ALTER INDEX-et használod az indexből származó utak hozzáadására vagy eltávolítására, az index opciók nem érvényesek argumentumok. Az index opciókról információért lásd: CREATE XML INDEX (Selective XML indexes).

Megjegyzések

Fontos

Amikor ALTER INDEX utasítást futtatunk, a szelektív XML index mindig újraépül. Ne felejtsd el figyelembe venni ennek a folyamatnak a szerver erőforrásaira gyakorolt hatását.

Biztonság

Permissions

Az ALTER INDEX futtatásához ALTER engedély szükséges a táblán vagy nézeten.

Példák

Az alábbi példa egy ALTER INDEX utasítást mutat be. Ez az utasítás hozzáadja az útvonalat '/a/b/m' az index XQuery részéhez, és törli az '/a/b/e' útvonalat az index SQL részéből, amelyet a CREATE SELECTIVE XML INDEX (Transact-SQL) témában hoztak létre. A törlési útvonalat a létrehozáskor kapott név azonosítja.

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

Az alábbi példa egy ALTER INDEX utasítást mutat be, amely indexopciókat határoz meg. Az index opciók azért engedélyezettek, mert az állítás nem használ FOR záradékot az utak hozzáadására vagy eltávolítására.

ALTER INDEX sxi_index  
ON Tbl  
PAD_INDEX = ON;  

Lásd még:

szelektív XML-indexek (SXI)
Szelektív XML-indexek létrehozása, módosítása és elvetése
Jelöld meg az útvonalakat és optimalizálási tippeket szelektív XML indexekhez