Modifying XML Indexes
The ALTER INDEX (języka Transact-SQL)Transact-SQL DDL statement can be used to modify existing XML and non-XML indexes.Jednak nie wszystkie opcje ALTER indeks dostępnych indeksów XML.Poniższe opcje są nieprawidłowe podczas modyfikowania indeksów XML:
Rekonstrukcji i zestaw opcja IGNORE_DUP_KEY nie jest prawidłowa dla indeksów XML.Opcja odbudowywania ONLINE należy ustawić na OFF dla indeksów pomocniczych XML.Opcja DROP_EXISTING nie jest dozwolona w instrukcja ALTER INDEX.
Modyfikacje ograniczenie klucz podstawowy w tabela użytkowników nie są automatycznie przenoszone na indeksy XML.Użytkownik musi najpierw usunąć indeksy XML i utwórz je ponownie.
Jeżeli określono wartość ALTER ALL indeks, stosuje się do XML inny niż i indeksów XML.Indeksowanie opcji można określić, które nie są prawidłowe dla obu typów indeksów.W takim przypadek cały instrukcja nie powiedzie się.
Przykład: Modyfikowanie indeks XML
W poniższym przykładzie jest tworzony indeks XML i następnie zmodyfikowany przez ustawienie opcji ALLOW_ROW_LOCKS Aby OFF. Kiedy ALLOW_ROW_LOCKS jest OFF, nie są zablokowane wiersze i uzyskuje się dostęp do określonych indeksów za pomocą strona- i poziom tabela 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 indeks XML
Indeks XML jest domyślnie włączona.Jeśli indeks XML jest wyłączona, kwerendy, uruchamianie wobec kolumna XML nie należy używać indeksu XML.Aby włączyć indeks XML, należy użyć ALTER INDEX z REBUILD Opcja.
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