Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к: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. Кода вы добавляете путь через ADD, вы используете такой же синтаксис, который использовался для создания путей посредством выражения CREATE SELECTIVE XML INDEX. Дополнительные сведения о путях, которые вы можете указывать в инструкции CREATE или ALTER, см. в разделе Задание путей и указания по оптимизации для селективных XML-индексов.
Удаление пути через REMOVE. Когда вы удаляете путь через REMOVE, вы предоставляете имя, которое было дано пути при его создании.
[С (<>)]
Задавать параметры <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-индексов