1

XML列に要素が存在するかどうかをチェックし、存在する場合はその値を更新する更新ステートメントを作成しようとしています。そうでない場合は、値を新しい要素として挿入します。

何かのようなもの:

UPDATE Table
SET xmlCol = 
case
when xmlCol.exist('element') = 1
then xmlCol.modify('replace value of blah')
else xmlCol.modify('insert blah')
end
where whatever

私はこれを間違った方法で行っていますか?

4

1 に答える 1

3

xmlデータ型のmodify()メソッドは、UPDATEステートメントのSET句でのみ使用できます。

2つのステートメントでそれを行うのがおそらく最も簡単です。

UPDATE Table 
SET xmlCol.modify('replace value of /blah')
WHERE xmlCol.exist('/blah') = 1;

UPDATE Table
SET xmlCol.modify('insert /blah')
WHERE xmlCol.exist('/blah') = 0;
于 2013-03-26T19:08:35.603 に答える