Partager via


ALTER INDEX (index XML sélectifs)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance

Modifie un index XML sélectif existant. L'instruction ALTER INDEX modifie un ou plusieurs des éléments suivants :

  • La liste de chemins d'accès indexés (clause FOR).

  • La liste des espaces de noms (clause WITH XMLNAMESPACES).

  • Les options d'index (clause WITH).

Vous ne pouvez pas modifier des index XML secondaires sélectifs. Pour plus d’informations, consultez Créer, modifier ou supprimer des index XML secondaires sélectifs.

Conventions de la syntaxe Transact-SQL

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
Nom de l'index existant à modifier.

<table_object>
Table contenant la colonne XML à indexer. Utilisez l'un des éléments suivants :

  • database_name.schema_name.table_name

  • database_name..table_name

  • schema_name.table_name

  • table_name

[WITH XMLNAMESPACES (<xmlnamespace_list>)]
Liste des espaces de noms utilisés par les chemins d'accès à indexer. Pour plus d’informations sur la syntaxe de la clause WITH XMLNAMESPACES, consultez WITH XMLNAMESPACES (Transact-SQL).

FOR (<promoted_node_path_action_list>)
Liste des chemins d'accès indexés à ajouter ou à supprimer.

  • Ajouter un chemin d'accès Lorsque vous AJOUTEZ un chemin d'accès, vous utilisez la même syntaxe que celle qui est utilisée pour créer des chemins d'accès à l'aide de l'instruction CREATE SELECTIVE XML INDEX. Pour plus d’informations sur les chemins que vous pouvez spécifier dans l’instruction CREATE ou ALTER, consultez Spécifier les chemins d’accès et les indicateurs d’optimisation des index XML sélectifs.

  • Supprimer un chemin d'accès. Lorsque vous SUPPRIMEZ un chemin d'accès, vous devez fournir le nom qui a été donné au chemin d'accès au moment de sa création.

[WITH (<index_options>)]
Vous pouvez spécifier <index_options> uniquement quand vous utilisez ALTER INDEX sans la clause FOR. Lorsque vous utilisez ALTER INDEX pour ajouter ou supprimer des chemins d'accès dans l'index, les options d'index ne sont pas des arguments valides. Pour plus d’informations sur les options d’index, consultez CREATE XML INDEX (Selective XML Indexes).

Notes

Important

Lorsque vous exécutez une instruction ALTER INDEX, l'index XML sélectif est toujours reconstruit. Assurez-vous de prendre en compte l'impact de ce processus sur les ressources du serveur.

Sécurité

Autorisations

L'exécution de ALTER INDEX nécessite une autorisation ALTER sur la table ou la vue.

Exemples

L'exemple suivant illustre une instruction ALTER INDEX. Cette instruction ajoute le chemin '/a/b/m' à la partie XQuery de l’index et supprime le chemin '/a/b/e' de la partie SQL de l’index créé dans l’exemple de la rubrique CREATE SELECTIVE XML INDEX (Transact-SQL). Le chemin d'accès à supprimer est identifié par le nom qui lui a été donné lors de sa création.

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

L'exemple suivant illustre une instruction ALTER INDEX qui spécifie les options d'index. Les options d'index sont autorisées, car l'instruction n'utilise pas de clause FOR pour ajouter ou supprimer des chemins d'accès.

ALTER INDEX sxi_index  
ON Tbl  
PAD_INDEX = ON;  

Voir aussi

Index XML sélectifs (SXI)
Créer, modifier ou supprimer des index XML sélectifs
Spécifier les chemins d’accès et les indicateurs d’optimisation des index XML sélectifs