这里是我的方案添加到XML列的属性:从另一列在同一个/另一个表
--ORDER table
OrderID OrderCode DateShipped ShipmentXML
1 ABC 08/06/2013 <Order><Item CustomerName="BF" City="Philadelphia" State="PA"></Item></Order>
2 XYZ 08/05/2013 <Order><Item CustomerName="TJ" City="Richmond" State="VA"></Item></Order>
在过程中的某个时刻,我会知道这些订单分别TrackingNumber。跟踪号码另一个表可用这样的:
--TRACKING table
TrackingID OrderCode TrackingNumber
98 ABC 1Z1
99 XYZ 1Z2
我期待的输出如下:
OrderID OrderCode ShipmentXML
1 ABC <Order><Item CustomerName="BF" City="Philadelphia" State="PA" DateShipped="08/06/2013" TrackingNumber="1Z1"></Item></Order>
2 XYZ <Order><Item CustomerName="TJ" City="Richmond" State="VA" DateShipped="08/05/2013" TrackingNumber="1Z2"></Item></Order>`
正如你所看到的,我试图让TrackingNumber
和DateShipped
每个OrderCode
并将它们作为属性。意图是一个SELECT,而不是UPDATE。
我见过的所有示例演示了如何使用常量值或变量更新XML。我无法找到一个用JOIN演示XML更新的人。请帮助完成这项工作。
UPDATE:
通过 '选择不更新',我的意思是永久表中没有更新;因为Mikael在第一个答案下面评论,所以临时表的更新非常好。
+1。在各种情况下更丰富的选择更丰富的选择。 –
@ i-one这种方法的优点是XML可以有任意数量的其他节点,并且它们仍然会在结果中。您和其他答案都重新构建了XML,假定问题中存在的是全部。而且很可能如此,只有OP知道。 –
+1,是的,如果XML比问题 –