ALTER INDEX (índices XML seletivos)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure
Modifica um índice XML seletivo existente. A instrução ALTER INDEX altera um ou mais dos seguintes itens:
A lista de caminhos indexados (cláusula FOR).
A lista de namespaces (cláusula WITH XMLNAMESPACES).
As opções de índice (cláusula WITH).
Você não pode alterar índices XML seletivos secundários. Para obter mais informações, veja Criar, alterar e remover índices XML seletivos secundários.
Convenções de sintaxe de Transact-SQL
Sintaxe
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
)
Argumentos
index_name
Nome do índice existente a ser alterado.
<table_object>
Tabela que contém a coluna XML a ser indexada. Use um destes formatos:
database_name.schema_name.table_name
database_name..table_name
schema_name.table_name
table_name
[WITH XMLNAMESPACES (<xmlnamespace_list>)]
Lista de namespaces usados pelos caminhos a serem indexados. Para obter informações sobre a sintaxe da cláusula WITH XMLNAMESPACES, veja WITH XMLNAMESPACES (Transact-SQL).
FOR (<promoted_node_path_action_list>)
Lista de caminhos indexados a serem adicionados ou removidos.
Use ADD para adicionar um caminho. Ao usar ADD para adicionar um caminho, use a mesma sintaxe usada para criar caminhos com a instrução CREATE SELECTIVE XML INDEX. Para obter informações sobre os caminhos que você pode especificar na instrução CREATE ou ALTER, veja Especificar caminhos e dicas de otimização para índices XML seletivos.
Use REMOVE para remover um caminho. Ao usar REMOVE para remover um caminho, forneça o nome que foi atribuído ao caminho quando ele foi criado.
[WITH (<index_options>)]
Você só pode especificar <index_options> quando usar ALTER INDEX sem a cláusula FOR. Quando você usar ALTER INDEX para adicionar ou remover caminhos no índice, as opções de índice não serão argumentos válidos. Para obter informações sobre as opções de índice, veja CREATE XML INDEX (índices XML seletivos).
Comentários
Importante
Quando você executa uma instrução ALTER INDEX, o índice XML seletivo é sempre recriado. Considere o impacto desse processo em recursos do servidor.
Segurança
Permissões
Para executar ALTER INDEX, a permissão ALTER na tabela ou exibição é necessária.
Exemplos
O exemplo a seguir mostra uma instrução ALTER INDEX. Essa instrução adiciona o caminho '/a/b/m'
à parte XQuery do índice e exclui o caminho '/a/b/e'
da parte SQL do índice criado no exemplo no tópico CREATE SELECTIVE XML INDEX (Transact-SQL). O caminho a ser excluído é identificado pelo nome atribuído a ele quando foi criado.
ALTER INDEX sxi_index
ON Tbl
FOR
(
ADD pathm = '/a/b/m' as XQUERY 'node()' ,
REMOVE pathabe
);
O exemplo a seguir mostra uma instrução ALTER INDEX que especifica opções de índice. As opções de índice são permitidas porque a instrução não usa uma cláusula FOR para adicionar ou remover caminhos.
ALTER INDEX sxi_index
ON Tbl
PAD_INDEX = ON;
Consulte Também
SXI (índices XML seletivos)
Criar, alterar e remover índices XML seletivos
Especificar caminhos e dicas de otimização para índices XML seletivos