如何更新sql中的xml字段表? [英] how to update a xml field table in sql?
本文介绍了如何更新sql中的xml字段表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在表中有一个 XML 列,如下所示:
I have a XML column in a table that looks like this:
<word A="al" B="h" C="Ps" />
<word A="has" B="es" C="Pf" />
<word A="mom" B="es" C="Ph" />
我想像这样更新这个字段:
I want to update this field like this:
<word A="al" B="B1" C="C1" />
<word A="has" B="B2" C="C1" />
<word A="mom" B="B2" C="C2" />
我想通过 SQL Server 中的一个函数来做.
I want to do by a function in SQL Server.
谢谢!
推荐答案
正如 Mikael 所说,您需要描述更新背后的逻辑.但是对于上面的预期输出,以下应该有效:
As Mikael states you need to describe the logic behind the update. But for the expected output above, the following should work:
DECLARE @Words xml
SELECT @Words = '
<word A="al" B="h" C="Ps" />
<word A="has" B="es" C="Pf" />
<word A="mom" B="es" C="Ph" />'
SET @Words.modify('replace value of(/word[@A = "al"]/@B)[1] with "B1"')
SET @Words.modify('replace value of(/word[@A = "al"]/@C)[1] with "C1"')
SET @Words.modify('replace value of(/word[@A = "has"]/@B)[1] with "B2"')
SET @Words.modify('replace value of(/word[@A = "has"]/@C)[1] with "C1"')
SET @Words.modify('replace value of(/word[@A = "mom"]/@B)[1] with "B2"')
SET @Words.modify('replace value of(/word[@A = "mom"]/@C)[1] with "C2"')
SELECT @Words
这篇关于如何更新sql中的xml字段表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文