【发布时间】:2013-11-20 17:55:30
【问题描述】:
我在 SQL Server 中有 2 个表
表 1
ID - Name - Phone
1 HK 999
2 RK 888
3 SK 777
4 PK 666
表2
ID - XMLCol
1 XMLVal1
XMLVal1
<Root>
<Data1>
<ID>1</ID>
<Name>HK</Name>
</Data1>
<Data1>
<ID>2</ID>
<Name>RK</Name>
</Data1>
</Root>
现在我在 Table1
中插入一个 GUID 列表1
ID - Name - Phone - GUID
1 HK 999 HJHHKHJHJHKJH8788
2 RK 888 OONMNy7878HJHJHSD
3 SK 777 POMSDHBSNB775SD87
4 PK 666 HRBMASJMN76448NDN
在Table2 XML 列中,我想用新的 GUID 值更新ID 节点而不更改元素名称。
所以现在 XML 将是
<Root>
<Data1>
<ID>HJHHKHJHJHKJH8788</ID>
<Name>HK</Name>
</Data1>
<Data1>
<ID>OONMNy7878HJHJHSD</ID>
<Name>RK</Name>
</Data1>
</Root>
Table2 中的所有行都会发生这种情况。
请帮我解决这个问题。
【问题讨论】:
-
marc_s,我知道如何根据条件选择 xml 值,但不知道如何更新属于另一个表的值。
-
基本上是这样的:Update table2 set XMLCol.Modify('Root/Data1/ID') = (Select GUID From Table1 Where ID = XMLCol.Query('Root/Data1/ID'))你能帮我准确查询吗?
-
table2 可以多行吗? table1 中的 id 可以在 XML 中为 table2 中的一行重复使用一次以上吗?同一个id可以在table2中多行重复使用吗?
-
是的,table2 中有超过 1 行。是的,ID 列可以在 XML 中多次使用,但在不同的节点块中。块是指 Data1 节点和其中的元素。
-
可以,但是同一个id value可以重复使用吗?
标签: sql sql-server xml sqlxml