Aracılığıyla paylaş


XML Verilerinin İçinde İlişkisel Verileri Bağlama

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

xml veri tipi değişkeni veya sütununa karşı xml Veri Tipi Yöntemleri belirtebilirsiniz. Örneğin, query() Yöntemi (xml Veri Türü) belirtilen XQuery'yi bir XML örneğine karşı çalıştırır. XML'i bu şekilde oluştururken, XML olmayan bir sütundan veya Transact-SQL değişkeninden bir değer getirmek isteyebilirsiniz. Bu süreç, XML içinde bağlama ilişkisel veri olarak adlandırılır.

XML içindeki ilişkisel olmayan verileri bağlamak için SQL Server Veritabanı Motoru aşağıdaki sözde işlevleri sağlar:

Bu fonksiyonları, XML içinde ilişkisel bir değer açmak istediğinizde xml veri tipi metodlarıyla kullanabilirsiniz.

Bu fonksiyonları, xml, CLR kullanıcı tanımlı tipler, datetime, smalldatetime, metin, ntext, sql_variant ve resim türlerinin sütunlarında veya değişkenlerinde veri referansı olarak kullanamazsınız.

Ayrıca, bu cilt sadece okunabilir amaçlar içindir. Yani, bu fonksiyonları kullanan sütunlara veri yazamazsınız. Örneğin, sql:variable("@x")="bazı ifadeler" izin verilmez.

Örnek: sql:variable() kullanılarak alanlar arası sorgu

Bu örnek, sql:variable() uygulamasının bir sorguyu parametre etmesini nasıl etkinleştirebileceğini gösterir. ISBN, bir SQL değişkeni @isbnkullanılarak iletilir. Sabiti sql:variable() ile değiştirerek, sorgu sadece 0-7356-1588-2 ISBN'si olan herhangi bir ISBN'i değil, herhangi bir ISBN'yi aramak 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:column() benzer şekilde kullanılabilir ve ek avantajlar sağlar. Sütunun üzerindeki indeksler, maliyet tabanlı sorgu optimizatoru tarafından belirlendiği gibi verimlilik için kullanılabilir. Ayrıca, hesaplanan sütun yükseltilmiş bir özelliği depolayabilir.

Ayrıca Bkz.

  • xml Veri Türü Yöntemleri