Aracılığıyla paylaş


xml dizinleri değiştirme

The alter INDEX (Transact-sql) Transact-SQL DDL statement can be used to modify existing XML and non-XML indexes.Ancak, tüm alter INDEX seçenekleri xml dizinleri için kullanılabilir.xml dizinleri değiştirirken aşağıdaki seçenekleri geçerli değildir:

  • Yeniden oluşturma ve küme seçeneği IGNORE_DUP_KEY xml dizinler için geçerli değil.Yeniden oluşturma seçeneği çevrimiçi kapalı ikincil xml dizinler için küme olması gerekir.Seçeneği DROP_EXISTING alter INDEX deyim içinde izin verilmez.

  • Değişiklikler, kullanıcı birincil anahtar kısıtlaması tablo otomatik olarak xml dizinler yayılır.Kullanıcı xml dizinler ilk olarak bırakın ve sonra bunları yeniden oluşturmanız gerekir.

  • alter INDEX all belirtilirse, olmayan xml ve xml dizinler için geçerlidir.Dizin oluşturma seçenekleri, her iki tür dizinler için geçerli olan belirtilebilir.Bu durum, tam deyim başarısız olur.

Örnek: Bir xml dizini değiştirme

Aşağıdaki örnekte, bir xml dizin oluşturulur ve sonra bir seçeneği ayarlayarak değişiklik ALLOW_ROW_LOCKS için OFF.Zaman ALLOW_ROW_LOCKS olan OFF, satır kilitli değil ve belirtilen dizin erişimi kullanarak elde edilir sayfa- ve tablo düzey kilitleri.

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
-- 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'

-- Modify and set an index option.
ALTER INDEX PIdx_T_XmlCol on T 
SET (ALLOW_ROW_LOCKS = OFF)

Örnek: Bir xml dizin etkinleştirme ve devre dışı bırakma

Bir xml dizin varsayılan olarak etkindir.Bir xml dizin devre dışı bırakılırsa, xml sütun karşı çalışan sorguları xml dizin kullanmayın.xml dizinini etkinleştirmek için ALTER INDEX ile REBUILD seçeneği.

CREATE TABLE T (Col1 INT PRIMARY KEY, XmlCol XML)
GO
CREATE PRIMARY XML INDEX PIdx_T_XmlCol ON T(XmlCol)
GO
ALTER INDEX PIdx_T_XmlCol on T DISABLE
Go
-- Verify index is disabled.
SELECT *
FROM sys.xml_indexes
WHERE object_id = object_id('T')
AND name='PIdx_T_XmlCol'
-- Rebuild the index.
ALTER INDEX PIdx_T_XmlCol on T REBUILD
Go

Ayrıca bkz.

Kavramlar