ALTER INDEX (селективные XML-индексы)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
Изменяет существующий селективный XML-индекс. Инструкция ALTER INDEX изменяет один или несколько из следующих элементов:
Список индексированных путей (предложение FOR).
Список пространств имен (предложение WITH XMLNAMESPACES).
Параметры индекса (предложение WITH).
Нельзя изменить вторичные селективные XML-индексы. Дополнительные сведения см. в разделе Создание, изменение и удаление вторичных селективных XML-индексов.
Соглашения о синтаксисе Transact-SQL
Синтаксис
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
)
Аргументы
index_name
Имя существующего индекса, который требуется изменить.
<table_object>
Таблица, которая содержит индексируемый XML-столбец. Используйте один из следующих форматов:
database_name.schema_name.table_name
database_name..table_name
schema_name.table_name
table_name
[WITH XMLNAMESPACES (<xmlnamespace_list>)]
Список пространств имен, используемых индексируемыми путями. Сведения о синтаксисе предложения WITH XMLNAMESPACES см. в статье WITH XMLNAMESPACES (Transact-SQL).
FOR (<promoted_node_path_action_list>)
Список индексированных путей, который необходимо добавить или удалить.
Добавление пути через ADD. Кода вы добавляете путь через ADD, вы используете такой же синтаксис, который использовался для создания путей посредством выражения CREATE SELECTIVE XML INDEX. Дополнительные сведения о путях, которые вы можете указывать в инструкции CREATE или ALTER, см. в разделе Задание путей и указания по оптимизации для селективных XML-индексов.
Удаление пути через REMOVE. Когда вы удаляете путь через REMOVE, вы предоставляете имя, которое было дано пути при его создании.
[WITH (<index_options>)]
Задавать параметры <index_options> можно только при использовании инструкции ALTER INDEX без предложения FOR. Если для добавления или удаления пути в индексе используется ALTER INDEX, то параметры индекса являются недопустимыми аргументами. Дополнительные сведения о параметрах индекса см. в статье CREATE XML INDEX (селективные XML-индексы).
Замечания
Внимание
При выполнении инструкции ALTER INDEX селективный XML-индекс всегда перестраивается. Необходимо учитывать влияние этого процесса на ресурсы сервера.
Безопасность
Разрешения
Для использования ALTER INDEX требуется разрешение ALTER для таблицы или представления.
Примеры
В следующем примере показана инструкция ALTER INDEX. Эта инструкция добавляет путь '/a/b/m'
в часть XQuery индекса и удаляет путь '/a/b/e'
из части SQL индекса, созданного в примере в разделе CREATE SELECTIVE XML INDEX (Transact-SQL). Путь для удаления определяется по имени, указанному при его создании.
ALTER INDEX sxi_index
ON Tbl
FOR
(
ADD pathm = '/a/b/m' as XQUERY 'node()' ,
REMOVE pathabe
);
В следующем примере показана инструкция ALTER INDEX с параметром индекса. Параметры индекса недопустимы, так как инструкция не использует предложение FOR для добавления или удаления пути.
ALTER INDEX sxi_index
ON Tbl
PAD_INDEX = ON;
См. также
Выборочный XML-индекс (SXI)
Создание, изменение и удаление селективных XML-индексов
Задание путей и указания по оптимизации для селективных XML-индексов