我正在使用xQuery,如果User
元素下不存在元素标签Active
,我正试图替换test
元素的值。
(我添加了引号,以便能够在这里正确显示…)
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'.
我做错了什么?
不允许在表达式中嵌入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小提琴