Usuwanie indeksów XML
The Usuwanie INDEKSU (Transact-SQL) Transact-SQL statement can be used to drop existing primary or secondary XML and non-XML indexes.Jednakże żadne opcje nie UPUSZCZANIA indeksu zastosowanie indeksów XML.Jeśli upuścisz indeksu głównego XML indeksów pomocniczych, które są obecne są również usuwane.
Składnia UPUSZCZANIA z TableName.IndexName szczękowych i nie jest obsługiwana dla indeksów XML.
Przykład: Tworzenie i upuszczając indeksu głównego XML
W poniższym przykładzie tworzony jest indeks XML na xml typu kolumna.
DROP TABLE T
GO
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
-- Verify the index creation.
-- Note index type is 3 for xml indexes.
-- 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'
-- Drop the index.
DROP INDEX PIdx_T_XmlCol ON T
Po upuszczeniu tabela wszystkie indeksy XML na nim są również automatycznie usuwane.Jednakże kolumnie XML nie można usunąć z tabela, jeśli kolumna istnieje indeks XML.
W poniższym przykładzie tworzony jest indeks XML na xml typu kolumna.Aby uzyskać więcej informacji, zobacz XML wpisywanych w porównaniu do pliku XML bez typu.
CREATE TABLE TestTable(
Col1 int primary key,
Col2 xml (Production.ProductDescriptionSchemaCollection))
GO
Można teraz utworzyć indeks podstawowy XML na Co12.
CREATE PRIMARY XML INDEX PIdx_TestTable_Col2
ON TestTable(Col2)
GO
Przykład: Tworzenie indeksu XML przy użyciu opcji indeks DROP_EXISTING
W poniższym przykładzie tworzony jest indeks XML na kolumna (XmlColx).Następnie indeks XML o tej samej nazwie zostanie utworzony na innej kolumna (XmlColy).Ponieważ DROP_EXISTING określona opcja, istniejące XML indeksu na (XmlColx) jest porzucane i nowy indeks XML na (XmlColy) jest tworzona.
DROP TABLE T
GO
CREATE TABLE T(Col1 int primary key, XmlColx xml, XmlColy xml)
GO
-- Create XML index on XmlColx.
CREATE PRIMARY XML INDEX PIdx_T_XmlCol
ON T(XmlColx)
GO
-- Create same name XML index on XmlColy.
CREATE PRIMARY XML INDEX PIdx_T_XmlCol
ON T(XmlColy)
WITH (DROP_EXISTING = ON)
-- Verify the index is created on XmlColy.d.
SELECT sc.name
FROM sys.xml_indexes si inner join sys.index_columns sic
ON sic.object_id=si.object_id and sic.index_id=si.index_id
INNER join sys.columns sc on sc.object_id=sic.object_id
AND sc.column_id=sic.column_id
WHERE si.name='PIdx_T_XmlCol'
AND si.object_id=object_id('T')
Ta kwerenda zwraca nazwę kolumna, na którym tworzony jest określony indeks XML.