2011-01-13 20 views
7

¿Hay alguna manera de comparar variables o columnas de XML en SQL Server 2008, que es diferente de comparar un varchar que se puede hacer desde el valor XML? Algunos mecanismos hash?SQL Server 2008: cómo comparar XML?

Por ejemplo:

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

Respuesta

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

he acaba de intentar esto. Funciona bien. Ignora las diferencias en el espacio en blanco, que es lo que me preocupaba. Comparé dos variables XML, establecí el mismo XML, aparte de un par de sangrías, y la comparación devolvió cierta. Sin embargo, después de cambiar el valor de texto de un elemento en uno de ellos, la comparación ahora devuelve falso. –

+0

parece que existe un problema con los espacios en blanco – Slava

+0

@Slava de qué manera? –

Cuestiones relacionadas