Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Verwaltete Azure SQL-Instanz
SQL-Datenbank in Microsoft Fabric
Ändert einen vorhandenen selektiven XML-Index. Die Erklärung ALTER INDEX ändert eines oder mehrere der folgenden Punkte:
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_namedatabase_name..table_nameschema_name.table_nametable_name
[MIT 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).
FÜR (<promoted_node_path_action_list>)
Die Liste der hinzuzufügenden oder zu entfernenden indizierten Pfade.
Einen Pfad HINZUFÜGEN. Wenn du einen Pfad hinzufügst, verwendest du dieselbe Syntax, mit der Pfade mit der CREATE SELECTIVE XML INDEX Anweisung erstellt werden. 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.
[MIT (<index_options>)]
Du kannst index_options nur angeben<, wenn du es ohne die FOR-Klausel verwendestALTER INDEX.> Wenn Sie ALTER INDEX Pfade im Index hinzufügen oder entfernen, sind die Indexoptionen keine gültigen Argumente. Informationen zu den Indexoptionen finden Sie unterCREATE XML INDEX (Selektive XML-Indexe).
Hinweise
Wichtig
Wenn du eine ALTER INDEX Anweisung ausführst, wird der selektive XML-Index immer neu aufgebaut. Beachten Sie unbedingt die Auswirkungen dieses Prozesses auf Serverressourcen.
Sicherheit
Berechtigungen
ALTER-Berechtigung für die Tabelle oder Ansicht ist erforderlich, um ausgeführt zu werden ALTER INDEX.
Beispiele
Das folgende Beispiel zeigt eine ALTER INDEX Aussage. Diese Anweisung fügt den Pfad '/a/b/m' zum XQuery-Teil des Index hinzu und löscht den Pfad '/a/b/e' aus dem SQL-Teil des im Beispiel im Thema CREATE SELECTIVE XML INDEX erstellten Index (Transact-SQL). 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
);
Das folgende Beispiel zeigt eine ALTER INDEX Anweisung, die Indexoptionen angibt. 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