ALTER INDEX (Selektiva XML-index)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Modifierar ett befintligt selektivt XML-index. Uttalandet ALTER INDEX ändrar en eller flera av följande punkter:

  • Listan över indexerade vägar (FOR-satsen).

  • Listan över namnrymder (MED XMLNAMNRYMDSKLAUSULEN).

  • Indexoptionerna (MED klausulen).

Du kan inte ändra sekundära selektiva XML-index. För mer information, se Skapa, ändra och ta bort sekundära selektiva XML-index.

Transact-SQL syntaxkonventioner

Syntax

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
Är namnet på det befintliga indexet som ska ändras.

<table_object>
Är tabellen som innehåller XML-kolumnen att indexera. Använd ett av följande format:

  • database_name.schema_name.table_name

  • database_name..table_name

  • schema_name.table_name

  • table_name

[MED XMLNAMNSRYMDER (<xmlnamespace_list>)]
Är listan över namnrymder som används av stigarna för indexering. För information om syntaxen i WITH XMLNAMESPACES-satsen, se WITH XMLNAMESPACES (Transact-SQL).

FÖR (<promoted_node_path_action_list>)
Är listan över indexerade vägar att lägga till eller ta bort.

  • LÄGG till en väg. När du LÄGGER till en sökväg använder du samma syntax som används för att skapa vägar med satsen CREATE SELECTIVE XML INDEX . För information om de vägar du kan specificera i CREATE- eller ALTER-satsen, se Specificera vägar och optimeringstips för selektiva XML-index.

  • TA bort en väg. När du TAR bort en väg anger du namnet som gavs till vägen när den skapades.

[MED (<index_options>)]
Du kan bara specificera <index_options> när du använder ALTER INDEX utan FOR-klausulen. När du använder ALTER INDEX det för att lägga till eller ta bort vägar i indexet är indexalternativen inte giltiga argument. För information om indexalternativen, se CREATE XML INDEX (Selektiva XML-index).

Anmärkningar

Viktigt!

När du kör en ALTER INDEX sats byggs det selektiva XML-indexet alltid om. Se till att ta hänsyn till hur denna process påverkar serverresurserna.

Security

Permissions

ALTER-behörighet på tabellen eller vyn krävs för att köra ALTER INDEX.

Examples

I följande exempel visas en ALTER INDEX instruktion. Detta uttalande lägger till sökvägen '/a/b/m' till XQuery-delen av indexet och tar bort sökvägen '/a/b/e' från SQL-delen av indexet som skapats i exemplet i ämnet CREATE SELECTIVE XML INDEX (Transact-SQL). Sökvägen till borttagning identifieras med det namn som angavs när den skapades.

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

Följande exempel visar ett ALTER INDEX uttalande som specificerar indexalternativ. Indexalternativ är tillåtna eftersom satsen inte använder en FOR-klausul för att lägga till eller ta bort vägar.

ALTER INDEX sxi_index  
ON Tbl  
PAD_INDEX = ON;  

Se även

Selektiva XML-index (SXI)
skapa, ändra och ta bort selektiva XML-index
Specificera vägar och optimeringstips för selektiva XML-index