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
更新したくないとしましょう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...]')