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 子句中使用。

在两个语句中执行它可能是最简单的。

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 回答