2011-01-13 20 views
7

C'è un modo per confrontare variabili o colonne di XML in SQL Server 2008, che è diverso dal confronto di un varchar che può essere fatto dal valore XML? Alcuni meccanismi di hashing?SQL Server 2008: come confrontare XML?

Ad esempio:

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

risposta

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

Ho appena provato questo fuori. Funziona bene. Ignora le differenze negli spazi bianchi, che è ciò di cui ero preoccupato. Ho confrontato due variabili XML, impostate su XML identici a parte un paio di rientri, e il confronto è tornato vero. Tuttavia, dopo aver modificato il valore del testo di un elemento in uno di essi, il confronto ora restituito falso. –

+0

sembra esistere un problema con spazi bianchi – Slava

+0

@Slava in che modo? –

Problemi correlati