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