2011-01-13 19 views
7

Czy istnieje sposób na porównanie zmiennych lub kolumn XML w SQL Server 2008, który różni się od porównywania varcharu, który można uzyskać z wartości XML? Niektóre mechanizmy mieszające?SQL Server 2008: jak porównać XML?

Na przykład:

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

Odpowiedz

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

Właśnie próbowałem to. To dobrze działa. Ignoruje różnice w białych obszarach, o co się martwiłem. Porównałem dwie zmienne XML, ustawione na identyczny XML, z wyjątkiem kilku wcięć, a porównanie powiodło się. Jednak po zmianie wartości tekstowej elementu w jednym z nich porównanie teraz zwróciło fałsz. –

+0

wydaje się, że istnieje problem z białymi przestrzeniami – Slava

+0

@Slava w jaki sposób? –

Powiązane problemy