Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Instancia
administrada de Azure SQLBase de datos SQL en Microsoft Fabric
Modifica un índice XML selectivo existente. La ALTER INDEX declaración cambia uno o más de los siguientes puntos:
La lista de rutas de acceso indizadas (cláusula FOR).
La lista de espacios de nombres (cláusula WITH XMLNAMESPACES).
Las opciones de índice (cláusula WITH).
No puede modificar índices XML selectivos secundarios. Para más información, vea Crear, modificar y quitar índices XML selectivos secundarios.
Convenciones de sintaxis de Transact-SQL
Sintaxis
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
Es el nombre del índice existente que se va a modificar.
<table_object>
Es la tabla que contiene la columna XML que se va a indizar. Use uno de los formatos siguientes:
database_name.schema_name.table_namedatabase_name..table_nameschema_name.table_nametable_name
[CON XMLNAMESPACES (<xmlnamespace_list>)]
Es la lista de espacios de nombres usados por las rutas de acceso que se van a indizar. Para saber más sobre la sintaxis de la cláusula WITH XMLNAMESPACES, vea WITH XMLNAMESPACES (Transact-SQL).
PARA (<promoted_node_path_action_list>)
Es la lista de rutas de acceso indizadas que se van a agregar o quitar.
Agregar (con ADD) una ruta de acceso. Cuando AÑADES un camino, usas la misma sintaxis que se usa para crear rutas con la CREATE SELECTIVE XML INDEX sentencia. Para más información sobre rutas de acceso que se pueden especificar en la instrucción CREATE o ALTER, vea Especificar rutas de acceso y sugerencias de optimización para índices XML selectivos.
QUITAR (con REMOVE) una ruta de acceso. Cuando se quita (con REMOVE) una ruta de acceso, debe proporcionar el nombre especificado para la ruta de acceso cuando se creó.
[CON (<index_options>)]
Solo puedes especificar <index_options> cuando usas ALTER INDEX sin la cláusula FOR. Cuando se usa ALTER INDEX para añadir o eliminar caminos en el índice, las opciones de índice no son argumentos válidos. Para información sobre las opciones de índice, véaseCREATE XML INDEX (Selective XML Indexes).
Comentarios
Importante
Cuando ejecutas una ALTER INDEX sentencia, el índice selectivo XML siempre se reconstruye. Debe tener en cuenta el impacto de este proceso sobre los recursos de servidor.
Seguridad
Permisos
Se requiere permiso ALTER en la tabla o vista para ejecutar ALTER INDEX.
Ejemplos
En el ejemplo siguiente se muestra una ALTER INDEX instrucción . Esta sentencia añade la ruta '/a/b/m' a la parte XQuery del índice y elimina la ruta '/a/b/e' de la parte SQL del índice creada en el ejemplo del tema CREATE SELECTIVE XML INDEX (Transact-SQL). La ruta de acceso que se va a eliminar se identifica por el nombre que se especificó cuando se creó.
ALTER INDEX sxi_index
ON Tbl
FOR
(
ADD pathm = '/a/b/m' as XQUERY 'node()' ,
REMOVE pathabe
);
El siguiente ejemplo muestra una ALTER INDEX sentencia que especifica opciones de índice. Se permiten opciones de índice porque la instrucción no usa una cláusula FOR para agregar o quitar rutas de acceso.
ALTER INDEX sxi_index
ON Tbl
PAD_INDEX = ON;
Consulte también
Índices XML selectivos (SXI)
Crear, modificar y quitar índices XML selectivos
Especificar rutas de acceso y sugerencias de optimización para índices XML selectivos