I have two xml and I want to see which fields were modified, however the result is not formatting them as they were entered:
DECLARE @xml1 xml ='<id>41</id><codigo>00054</codigo>';
DECLARE @xml2 xml ='<id>41</id><codigo>00054</codigo><idequipo>1</idequipo>';
SELECT *
FROM (
SELECT T.N.value('local-name(.)', 'nvarchar(100)') as NodeName,
T.N.value('.', 'nvarchar(100)') as Value
FROM @xml2.nodes('/*') AS T(N)
EXCEPT
SELECT T.N.value('local-name(.)', 'nvarchar(100)') as NodeName,
T.N.value('.', 'nvarchar(100)') as Value
FROM @xml1.nodes('/*') AS T(N)
) AS x FOR XML PATH
Your result is:
<row><NodeName>idequipo</NodeName><Value>1</Value></row>
And I want it:
<idequipo>1</idequipo>
Any suggestions?