Modyfikowanie indeksów XML
The Zmiana INDEKSU (Transact-SQL) Transact-SQL DDL statement can be used to modify existing XML and non-XML indexes.Jednak nie wszystkie opcje zmiany INDEKSU dostępnych indeksów XML.Następujące opcje nie są prawidłowe, modyfikując indeksy XML:
Odbuduj i zestaw opcji IGNORE_DUP_KEY jest nieprawidłowy dla indeksów XML.Opcja Odbuduj ONLINE musi być zestaw do OFF dla indeksów pomocniczych XML.Opcja DROP_EXISTING nie jest dozwolona w instrukcja ALTER INDEKSU.
Modyfikacje z klucz podstawowy ograniczenie w tabela użytkownika nie są automatycznie przenoszone na indeksy XML.Użytkownik musi najpierw usunąć indeksy XML i utworzyć je ponownie.
Jeśli określono zmianę INDEKSU wszystkich stosuje się do innych niż XML i indeksy XML.Opcje indeksowania mogą być określone nie są prawidłowe dla obu typów indeksów.W takim przypadek cały instrukcja nie powiedzie się.
Przykład: Modyfikowanie indeksu XML
W poniższym przykładzie jest tworzony indeks XML i następnie modyfikowane przez ustawienie opcji ALLOW_ROW_LOCKS do OFF.Gdy ALLOW_ROW_LOCKS jest OFF, wiersze nie są zablokowane i dostęp do określonych indeksów jest uzyskiwany przy użyciu strona- i tabela-poziom blokad.
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)
Przykład: Wyłączanie i Włączanie indeksu XML
Indeks XML jest domyślnie włączona.Indeks XML jest wyłączona, kwerendy, na którym działa kolumna XML nie należy używać indeksu XML.Aby włączyć indeks XML, użyj ALTER INDEX z REBUILD opcji.
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
-- Verify index is disabled.
SELECT *
FROM sys.xml_indexes
WHERE object_id = object_id('T')
AND name='PIdx_T_XmlCol'
-- Rebuild the index.
ALTER INDEX PIdx_T_XmlCol on T REBUILD
Go