Aracılığıyla paylaş


XML dizinlerini bırakma

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

DROP INDEX (Transact-SQL)Transact-SQL deyimi, var olan birincil veya ikincil XML'yi ve XML olmayan dizinleri bırakmak için kullanılabilir. Ancak, XML dizinlerine DROP INDEX seçeneği uygulanmaz. Birincil XML dizinini bırakırsanız, mevcut olan tüm ikincil dizinler de silinir.

TableName.IndexName sözdizimi aşamalı olarak kullanımdan kaldırılmaktadır ve XML dizinleri için desteklenmez.

Örnek: Birincil XML dizini oluşturma ve bırakma

Aşağıdaki örnekte, xml türündeki bir sütunda xml dizini oluşturulur.

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;
GO

Bir tablo silindiğinde, üzerindeki tüm XML dizinleri de otomatik olarak silinir. Ancak, sütunda XML dizini varsa, xml sütunu tablodan bırakılamaz.

Aşağıdaki örnekte, xml türündeki bir sütunda xml dizini oluşturulur. Daha fazla bilgi için, Yazılmış XML ile Yazılmamış XML'yi Karşılaştırmabölümüne bakınız.

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

Artık Co12üzerinde bir birincil XML dizini oluşturabilirsiniz.

CREATE PRIMARY XML INDEX PIdx_TestTable_Col2
ON TestTable(Col2)
GO

Örnek: DROP_EXISTING dizin seçeneğini kullanarak XML dizini oluşturma

Aşağıdaki örnekte, XmlColxbir sütunda xml dizini oluşturulur. Ardından, XmlColyfarklı bir sütunda aynı ada sahip başka bir XML dizini oluşturulur. DROP_EXISTING seçeneği belirtildiğinden, XmlColx'daki mevcut XML dizini bırakılır ve XmlColy üzerinde yeni bir XML dizini 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, belirtilen XML dizininin oluşturulduğu sütun adını döndürür.

Ayrıca bkz.