Aracılığıyla paylaş


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.