Ändern von XML-Indizes
Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance
Die ALTER INDEX (Transact-SQL)Transact-SQL DDL-Anweisung kann verwendet werden, um vorhandene XML- und Nicht-XML-Indizes zu ändern. Nicht alle ALTER INDEX-Optionen sind jedoch für XML-Indizes verfügbar. Die folgenden Optionen sind beim Ändern von XML-Indizes ungültig:
Die Option "Neu erstellen und festlegen" IGNORE_DUP_KEY ist für XML-Indizes nicht gültig. Die REBUILD-Option ONLINE muss für sekundäre XML-Indizes auf OFF festgelegt werden. Die Option DROP_EXISTING ist in der ALTER INDEX-Anweisung nicht zulässig.
Die Änderungen der Primärschlüsseleinschränkung in der Benutzertabelle werden nicht automatisch an XML-Indizes weitergegeben. Der Benutzer muss die XML-Indizes zuerst löschen und dann neu erstellen.
Wenn ALTER INDEX ALL angegeben wird, gilt dies für Nicht-XML- und XML-Indizes. Indizierungsoptionen können angegeben werden, die für beide Arten von Indizes nicht gültig sind. In diesem Fall schlägt die gesamte Anweisung fehl.
Beispiele
Ändern eines XML-Indexes
Im folgenden Beispiel wird ein XML-Index erstellt und dann durch Festlegen der Option ALLOW_ROW_LOCKS
auf OFF
geändert. Wenn ALLOW_ROW_LOCKS
dies der Wert ist OFF
, werden Zeilen nicht gesperrt, und der Zugriff auf die angegebenen Indizes wird mithilfe von Sperren auf Seiten- und Tabellenebene abgerufen.
CREATE TABLE T (Col1 INT PRIMARY KEY, XmlCol XML);
GO
-- Create primary XML index.
CREATE PRIMARY XML INDEX PIdx_T_XmlCol
ON T(XmlCol);
GO
-- Note the type 3 is index on XML type.
SELECT *
FROM sys.xml_indexes
WHERE object_id = object_id('T')
AND name='PIdx_T_XmlCol';
-- Modify and set an index option.
ALTER INDEX PIdx_T_XmlCol on T
SET (ALLOW_ROW_LOCKS = OFF);
Deaktivieren und Aktivieren eines XML-Indexes
Standardmäßig ist ein XML-Index aktiviert. Wenn ein XML-Index deaktiviert ist, verwenden die für die XML-Spalte ausgeführten Abfragen nicht den XML-Index. Verwenden Sie ALTER INDEX
mit der Option REBUILD
, um einen XML-Index zu aktivieren.
CREATE TABLE T (Col1 INT PRIMARY KEY, XmlCol XML);
GO
CREATE PRIMARY XML INDEX PIdx_T_XmlCol ON T(XmlCol);
GO
ALTER INDEX PIdx_T_XmlCol on T DISABLE;
GO
Verwenden Sie das folgende Beispiel, um zu überprüfen, ob der Index deaktiviert ist.
SELECT *
FROM sys.xml_indexes
WHERE object_id = object_id('T')
AND name='PIdx_T_XmlCol';
GO
Verwenden Sie das folgende Beispiel, um den Index neu zu erstellen.
ALTER INDEX PIdx_T_XmlCol on T REBUILD;
GO
Siehe auch
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für