Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Изменяет существующий селективный 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_namedatabase_name..table_nameschema_name.table_nametable_name
[С XMLNAMESPACES (<>)]
Список пространств имен, используемых индексируемыми путями. Сведения о синтаксисе предложения WITH XMLNAMESPACES см. в статье WITH XMLNAMESPACES (Transact-SQL).
ДЛЯ (<promoted_node_path_action_list>)
Список индексированных путей, который необходимо добавить или удалить.
Добавление пути через ADD. Когда вы ДОБАВЛЯЕТЕ путь, вы используете тот же синтаксис, что и для создания путей с этим CREATE SELECTIVE XML INDEX оператором. Дополнительные сведения о путях, которые вы можете указывать в инструкции CREATE или ALTER, см. в разделе Задание путей и указания по оптимизации для селективных XML-индексов.
Удаление пути через REMOVE. Когда вы удаляете путь через REMOVE, вы предоставляете имя, которое было дано пути при его создании.
[С (<>)]
Вы можете указывать <index_options> только при использовании ALTER INDEX без оговорки FOR. Когда вы используете ALTER INDEX добавление или удаление путей в индексе, опции индекса не являются действительными аргументами. Для получения информации о вариантах индекса см.CREATE XML INDEX (Selective XML Indexes).
Замечания
Внимание
При запуске 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;