データ設定例:
DECLARE @t TABLE (
Id int
, X xml
)
INSERT @t VALUES ( 1, '
<Form>
<Version>1000</Version>
<OtherValues />
</Form>
'
)
INSERT @t VALUES ( 2, '
<Form>
<Version>1000</Version>
<OtherValues />
</Form>
'
)
変更前データ:
SELECT * FROM @t
Id X
----------- ------------------------------------------------------------
1 <Form><Version>1000</Version><OtherValues /></Form>
2 <Form><Version>1000</Version><OtherValues /></Form>
データ更新:
UPDATE @t
SET X.modify('
replace value of
(/Form/Version[.="1000"]/text())[1]
with
"1001"
')
変更後のデータ:
SELECT * FROM @t
Id X
----------- ------------------------------------------------------------
1 <Form><Version>1001</Version><OtherValues /></Form>
2 <Form><Version>1001</Version><OtherValues /></Form>
注意事項:
replace value of
'to-be- replaced ' 式が "static singleton" を識別する必要があります。[1]
- !によって変更されるのは、(行ごとに) 1 つのノードだけです。
.modify
したがって、1 つの行に複数の XML ノードがある場合は、手動で反復する必要があります。