ALTER INDEX (selektive XML-Indizes)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance
Ändert einen vorhandenen selektiven XML-Index. Die ALTER INDEX-Anweisung ändert eines oder mehrere der folgenden Elemente:
Die Liste der indizierten Pfade (FOR-Klausel).
Die Liste der Namespaces (WITH XMLNAMESPACES-Klausel).
Die Indexoptionen (WITH-Klausel).
Sie können sekundäre selektive XML-Indizes nicht ändern. Weitere Informationen finden Sie unter Erstellen, Ändern und Löschen sekundärer selektiver XML-Indizes.
Transact-SQL-Syntaxkonventionen
Syntax
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
)
Argumente
index_name
Der Name des vorhandenen, zu ändernden Indexes.
<table_object>
Die Tabelle, die die zu indizierende XML-Spalte enthält. Verwenden Sie eines der folgenden Formate:
database_name.schema_name.table_name
database_name..table_name
schema_name.table_name
table_name
[WITH XMLNAMESPACES (<xmlnamespace_list>)]
Die Liste der von den zu indizierenden Pfaden verwendeten Namespaces. Weitere Informationen zur Syntax der WITH XMLNAMESPACES-Klausel finden Sie unter WITH XMLNAMESPACES (Transact-SQL).
FOR (<promoted_node_path_action_list>)
Die Liste der hinzuzufügenden oder zu entfernenden indizierten Pfade.
Einen Pfad HINZUFÜGEN. Wenn Sie einen Pfad HINZUFÜGEN, verwenden Sie die gleiche Syntax, die zur Erstellung von Pfaden mit der CREATE SELECTIVE XML INDEX-Anweisung verwendet wird. Informationen zu den Pfaden, die Sie in der CREATE- oder der ALTER-Anweisung angeben können, finden Sie unter Angeben von Pfaden und Optimierungshinweisen für selektive XML-Indizes.
Einen Pfad ENTFERNEN. Wenn Sie einen Pfad ENTFERNEN, geben Sie den Namen an, der dem Pfad bei seiner Erstellung zugewiesen wurde.
[WITH (<index_options>)]
Sie können <index_options> nur angeben, wenn Sie ALTER INDEX ohne die FOR-Klausel verwenden. Wenn Sie ALTER INDEX verwenden, um Pfade im Index hinzuzufügen oder sie daraus zu entfernen, sind die Indexoptionen keine gültigen Argumente. Informationen zu Indexoptionen finden Sie unter CREATE XML INDEX (selektive XML-Indizes).
Hinweise
Wichtig
Wenn Sie eine ALTER INDEX-Anweisung ausführen, wird der selektive XML-Index immer neu erstellt. Beachten Sie unbedingt die Auswirkungen dieses Prozesses auf Serverressourcen.
Sicherheit
Berechtigungen
ALTER-Berechtigung in der Tabelle oder Ansicht ist erforderlich, um ALTER INDEX auszuführen.
Beispiele
Im folgenden Beispiel wird eine ALTER INDEX-Anweisung veranschaulicht. Mit dieser Anweisung wird der Pfad '/a/b/m'
dem XQuery-Teil des Indexes hinzugefügt, und der Pfad '/a/b/e'
wird aus dem SQL-Teil des Indexes gelöscht, der im Beispiel im Thema CREATE SELECTIVE XML INDEX (Transact-SQL) erstellt wurde. Der zu löschende Pfad ist anhand des Namens zu erkennen, der ihm bei der Erstellung zugewiesen wurde.
ALTER INDEX sxi_index
ON Tbl
FOR
(
ADD pathm = '/a/b/m' as XQUERY 'node()' ,
REMOVE pathabe
);
Im folgenden Beispiel wird eine ALTER INDEX-Anweisung, die Indexoptionen angibt, veranschaulicht. Indexoptionen sind erlaubt, da die Anweisung keine FOR-Klausel verwendet, um Pfade hinzuzufügen oder zu entfernen.
ALTER INDEX sxi_index
ON Tbl
PAD_INDEX = ON;
Weitere Informationen
Selektive XML-Indizes (SXI)
Erstellen, Ändern und Löschen selektiver XML-Indizes
Angeben von Pfaden und Optimierungshinweisen für selektive XML-Indizes