我正在尝试编写一个更新语句,用于检查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
我是以错误的方式来做这件事的吗?
答案 0 :(得分:3)
xml数据类型的modify()方法只能在UPDATE语句的SET子句中使用。
在两个陈述中这样做可能是最简单的。
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;