2

私は xQuery を使用しており、要素タグが要素の下に存在しないtest場合、要素の値を置き換えようとしています。ActiveUser

(ここで適切に表示できるように引用符を追加しました...)

declare @testXML xml = '
<USER>
  <ID>10</ID>
  <TEST>1</TEST>
</USER>'

set @testXML.modify('if (exists(/USER/Active)=false)
                 then replace value of /USER/TEST with "2"
                 else ()') 
select @testXML

このため、次のエラーが発生します。

XQuery [modify()]: 'value' 付近の構文エラー、'else' が必要です。

何を間違えたのですか?

4

1 に答える 1

2

式に埋め込むことはできませんreplace value of ... with ..

(XML DML)の置換値から

replace value of 
      Expression1 
with
      Expression2

代わりに次のようなものを使用できます。

set @testXML.modify('replace value of (/USER[not(Active)]/TEST/text())[1] 
                     with "2"')

SQL フィドル

于 2013-05-06T17:37:55.757 に答える