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.