Sdílet prostřednictvím


ALTER INDEX (Selektivní XML indexy)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Modifikuje existující selektivní XML index. Výkaz ALTER INDEX mění jednu nebo více z následujících položek:

  • Seznam indexovaných cest (klauzule FOR).

  • Seznam jmenných prostorů (S klauzulí XMLNAMESPACES).

  • Indexové opce (klauzule WITH).

Sekundární selektivní XML indexy nelze měnit. Pro více informací viz Vytváření, Měnit a Zrušovat sekundární selektivní XML indexy.

Transact-SQL konvence syntaxe

Syntaxe

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
Je název existujícího indexu pro změnu.

<table_object>
Je tabulka, která obsahuje sloupec XML pro index. Použijte jeden z následujících formátů:

  • database_name.schema_name.table_name

  • database_name..table_name

  • schema_name.table_name

  • table_name

[S XMLNAMESPACES (<xmlnamespace_list>)]
je seznam jmenných prostorů používaných cestami k indexování. Pro informace o syntaxi klauzule WITH XMLNAMESPACES viz WITH XMLNAMESPACES (Transact-SQL).

FOR (<promoted_node_path_action_list>)
Je seznam indexovaných cest, které je třeba přidat nebo odstranit.

  • PŘIDEJTE cestu. Když PŘIDÁTE cestu, použijete stejnou syntaxi, která se používá k vytváření cest pomocí příkazu CREATE SELECTIVE XML INDEX. Pro informace o cestách, které můžete specifikovat v příkazu CREATE nebo ALTER, viz Specifikovat cesty a optimalizační hinty pro selektivní XML indexy.

  • ODSTRAŇTE cestu. Když ODSTRANÍTE cestu, zadáte název, který jí byl dán při jejím vytvoření.

[S (<index_options>)]
index_options> můžete specifikovat <pouze tehdy, když používáte ALTER INDEX bez klauzule FOR. Když použijete ALTER INDEX k přidání nebo odebrání cest v indexu, možnosti indexu nejsou platné argumenty. Pro informace o možnostech indexu viz CREATE XML INDEX (Selective XML Indexes).

Poznámky

Důležité

Když spustíte příkaz ALTER INDEX, selektivní XML index se vždy znovu vytvoří. Nezapomeňte zvážit dopad tohoto procesu na zdroje serveru.

Zabezpečení

Povolení

Pro spuštění ALTER INDEX je vyžadováno povolení ALTERu k tabulce nebo zobrazení.

Examples

Následující příklad ukazuje příkaz ALTER INDEX. Tento příkaz přidá cestu '/a/b/m' do části indexu XQuery a cestu '/a/b/e' odstraní z SQL části indexu vytvořené v příkladu v tématu CREATE SELECTIVE XML INDEX (Transact-SQL). Cesta k odstranění je identifikována názvem, který mu byl přidělen při jeho vytvoření.

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

Následující příklad ukazuje příkaz ALTER INDEX, který specifikuje možnosti indexu. Indexové opce jsou povoleny, protože výrok nepoužívá klauzuli FOR pro přidání nebo odebírání cest.

ALTER INDEX sxi_index  
ON Tbl  
PAD_INDEX = ON;  

Viz také

selektivní indexy XML (SXI)
vytváření, změny a odstraňování selektivních indexů XML
Specifikujte cesty a optimalizační tipy pro selektivní XML indexy