2011-01-13 5 views
7

Est-il possible de comparer des variables ou des colonnes de XML dans SQL Server 2008, ce qui est différent de la comparaison d'un varchar qui peut être créé à partir de la valeur XML? Certains mécanismes de hachage?SQL Server 2008: Comment comparer XML?

Par exemple:

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

Répondre

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

Je viens d'essayer cela. Ça marche bien. Ignore les différences dans les espaces blancs, ce qui m'inquiétait. J'ai comparé deux variables XML, définies en XML à l'exception de quelques retraits, et la comparaison est vraie. Cependant, après avoir changé la valeur de texte d'un élément dans l'un d'entre eux, la comparaison a renvoyé false. –

+0

semble problème existe avec des espaces blancs – Slava

+0

@Slava de quelle manière? –