2011-01-13 14 views
7

XML değerinden yapılabilecek bir varchar karşılaştırmaktan farklı olan SQL Server 2008'deki XML değişken veya sütunlarını karşılaştırmanın yolu var mı? Bazı karma mekanizmalar? ÖrneğinSQL Server 2008: XML nasıl karşılaştırılır?

:

declare @xml1 xml = '<Xml1/>' 
declare @xml2 xml = '<Xml2/>' 
select case when @xml1 = @xml2 then 1 else 0 end 

cevap

12
select case when cast(@xml1 as nvarchar(max)) = cast(@xml2 as nvarchar(max)) then 1 else 0 end 
+0

Sadece bu denedim. İyi çalışıyor. Beyaz boşluktaki farklılıkları yok sayarım, endişelendiğim şey budur. İki XML değişkenini karşılaştırdım, bir çift girintiden ayrı olarak aynı XML'e ayarlandım ve karşılaştırma doğru olarak döndü. Ancak, bir öğenin bir metin değerini değiştirdikten sonra, karşılaştırma artık yanlış döndü. –

+0

beyaz boşluklar – Slava

+0

@Slava ile sorun gibi görünüyor? –