我在 XML 列中有一个简单的 xml
<Bands>
<Band>
<Name>beatles</Name>
<Num>4</Num>
<Score>5</Score>
</Band>
<Band>
<Name>doors</Name>
<Num>4</Num>
<Score>3</Score>
</Band>
</Bands>
我设法用以下内容更新了该列:
-----just update the name to the id)----
UPDATE tbl1
SET [myXml].modify('replace value of (/Bands/Band/Name/text())[1]
with sql:column("id")')
一切都好。
问题 #1
如何使用此查询将值更新为id+"lalala"
:
UPDATE tbl1
SET [myXml].modify('replace value of (/Bands/Band/Name/text())[1]
with sql:column("id") + "lalala"')
错误 = XQuery [tbl1.myXml.modify()]: '+' 的参数必须是单个数字原始类型
问题 #1
假设我不想更新第一条记录 ( [1]
) ,但我只想udpate
(与上面相同的更新) where score>4
。
我当然可以在 xpath 中写:
replace value of (/Bands/Band[Score>4]/Name/text())[1]
但我不想在 Xpath 中这样做。没有使用Where
子句的正常方法吗?
就像是 :
UPDATE tbl1
SET [myXml].modify('replace value of (/Bands/Band/Name/text())[1]
with sql:column("id") where [...score>4...]')