xml verilerini içine ilişkisel veri bağlama
Belirtebileceğiniz XML veri türü yöntemleri karşı bir xml veri türü, değişken veya sütun.Örneğin, Query() yöntemi (xml veri türü) bir xml örnekkarşı XQuery belirtilen yürütür.Bu şekilde xml yapısı oluştururken olmayan xml türü sütun ya da Transact -SQL değişken değeri getirmek isteyebilirsiniz.Bu işlem için xml içinde ilişkisel veri bağlama olarak adlandırılmıştır.
xml içinde olmayan xml ilişkisel veri bağlamak için SQL Server veritabanı altyapısı aşağıdaki pseudo-functions sağlar:
SQL:sütun() işlev (XQuery)XQuery veya xml DMLifadeilişkisel bir sütun değerleri kullanmanızı sağlar.
SQL:variable() işlevi (XQuery) .XQuery veya xml DMLifade SQL değişkenin değerini kullanmanızı sağlar.
Bu işlevler ile kullanabileceğiniz xml veri türü yöntemleri her ilişkisel değer xml içinde göstermek istediğiniz
Bu işlevler, veri sütunları veya değişkenleri ile başvurmak için kullanamazsınız xml, clr kullanıcı tanımlı türler, datetime, smalldatetime, text, ntext, sql_variant, ve image türleri.
Ayrıca, bu bağlama salt okunur amaçlıdır.Diğer bir deyişle, bu işlevleri sütun veri yazamaz.Örneğin, sql:variable("@x") = "bazı ifade" izin verilmez.
Örnek: Çapraz -etki alanı sql:variable() sorgu kullanma
Bu örnek gösterir nasıl sql:variable() sorgu stratejisinin uygulamaya etkinleştirebilirsiniz.ISBN, bir SQL değişken @ isbn kullanarak içinde iletilir.sabit ile değiştirerek sql:variable(), sorgu herhangi ISBN ve yalnızca, ISBN 0-7356-1588-2 olan bir arama için kullanılabilir.
DECLARE @isbn varchar(20)
SET @isbn = '0-7356-1588-2'
SELECT xCol
FROM T
WHERE xCol.exist ('/book/@ISBN[. = sql:variable("@isbn")]') = 1
SQL:sütun() benzer şekilde kullanılabilir ve ek yararlar sağlar.Dizinler sütun üzerinde verimlilik için maliyet tabanlı sorgu iyileştiricisitarafından karar olarak kullanılmış olabilir.Ayrıca, hesaplanmış bir sütun yükseltilen özellikdepolayabilir.