XML dizinler bırakılıyor
The DROP INDEX (Transact-SQL)Transact-SQL statement can be used to drop existing primary or secondary XML and non-XML indexes.Ancak, DROP INDEX seçeneği XML dizinler için geçerlidir.Birincil XML dizini bırakın, var olan tüm ikincil dizinler de silinir.
Sözdizimi DROPTableName.IndexNamephased ve XML dizinler. desteklenmiyor
Örnek: Oluşturma ve bir birincil XML dizin siliniyor
Aşağıdaki örnekte, XML dizin oluşturulan birxmlTür sütun.
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
Tablo bağlantı kesildiğinde, üzerindeki XML dizinler otomatik olarak bırakılır.Ancak, bir XML sütun tarafından kesilmesini olamaz bir tablo sütun üzerinde XML dizin varsa.
Aşağıdaki örnekte, XML dizin oluşturulan birxmlTür sütun.Daha fazla bilgi için bkz:Klavyeyle yazılan XML Untyped XML'YE karşılaştırılması.
CREATE TABLE TestTable(
Col1 int primary key,
Col2 xml (Production.ProductDescriptionSchemaCollection))
GO
Şimdi, oluşturabileceğiniz birincil XML dizin üzerindeCo12.
CREATE PRIMARY XML INDEX PIdx_TestTable_Col2
ON TestTable(Col2)
GO
Örnek: DROP_EXISTING dizin seçeneği kullanılarak XML dizin oluşturma
Aşağıdaki örnekte, bir sütun üzerinde XML dizin oluşturulur ( XmlColx).Sonra aynı ada sahip başka bir XML dizini farklı bir sütuna göre oluşturulur ( XmlColy).İçinDROP_EXISTINGseçeneği belirtilmişse, varolan XML dizin üzerinde ( XmlColx)bırakılır ve yeni bir XML dizini ( XmlColy) oluşturulur.
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')
Bu sorgu için belirtilen XML dizin oluşturulan sütun adını döndürür.