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, hiçbir seçenek drop INDEX xml dizinler uygulanır.Birincil xml dizin bırakma, varolan tüm ikincil dizinler de silinir.

drop sözdizimiyle TableName.IndexName aşamalı ve desteklenmez xml dizinler.

Örnek: Oluşturma ve birincil xml dizin siliniyor

Aşağıdaki örnekte, bir xml dizin üzerinde oluşturulan bir xml tü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

Bir tablo kesildiği zaman üzerindeki tüm xml dizinler otomatik olarak bırakılır.Ancak, bir xml sütun gelen kesilmesini edemiyor bir tablo bir xml dizin sütunu varsa.

Aşağıdaki örnekte, bir xml dizin üzerinde oluşturulan bir xml türü sütun.Daha fazla bilgi için bkz: Yazılı xml Untyped xml karşılaştırılması.

CREATE TABLE TestTable(
 Col1 int primary key, 
 Col2 xml (Production.ProductDescriptionSchemaCollection)) 
GO

Şimdi, bir birincil xml dizin oluşturabilirsiniz Co12.

CREATE PRIMARY XML INDEX PIdx_TestTable_Col2 
ON TestTable(Col2)
GO

Örnek: DROP_EXISTING dizin seçeneğini kullanarak bir xml dizin oluşturma

Aşağıdaki örnekte, bir xml dizin üzerinde bir sütun oluşturulur (XmlColx).Farklı bir sütun üzerinde aynı adı taşıyan başka bir xml dizin oluşturulduktan sonra (XmlColy).Çünkü DROP_EXISTING seçeneği belirtildiğinde, varolan xml dizin üzerinde (XmlColx) bırakılır ve yeni bir xml dizin (XmlColy) oluşturulan.

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 dizini oluşturulmuş sütun adını döndürür.

Ayrıca bkz.

Kavramlar