假设我在日志表中使用
以下是示例样本。
xml
列存储员工数据。有时候,也会从存储过程中更新xml
列中的数据。以下是示例样本。
DECLARE @XML1 XML
DECLARE @XML2 XML
SET @XML1 =
'<NewDataSet>
<Employee>
<EmpID>1005</EmpID>
<Name> keith </Name>
<DOB>12/02/1981</DOB>
<DeptID>ACC001</DeptID>
<Salary>10,500</Salary>
</Employee>
</NewDataSet>'
SET @XML2 =
'<NewDataSet>
<Employee>
<EmpID>1006</EmpID>
<Name> keith </Name>
<DOB>05/02/1981</DOB>
<DeptID>ACC002</DeptID>
<Salary>10,900</Salary>
</Employee>
</NewDataSet>'
我需要展示两个xml
数据之间的差异,作为sql输出的旧值和新值。
Old Value New Value
--------- ---------
1005 1006
12/02/1981 05/02/1981
ACC001 ACC002
10,500 10,900
我只需要像上面那样展示差异。因此,请指导我如何使用XQuery比较两个XML数据,并仅以SQL Server中的上述方式显示差异。请用代码片段指导我。谢谢。
T
是表格别名,N
是列名。from @XML1.nodes('/NewDataSet/Employee/*') as T(N)
不一定要使用T(N)
,您可以自行决定要使用的别名和列名。 - Mikael Eriksson