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. ALTER INDEX-satsen ä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 ange <index_options> när du använder ALTER INDEX utan FOR-klausulen. När du använder ALTER INDEX för att lägga till eller ta bort vägar i indexet är indexalternativen inte giltiga argument. För information om indexalternativen, se SKAPA 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