SQL XQuery添加id属性,其中没有一个

时间:2012-06-26 15:27:12

标签: sql xquery identifier

我有一个xml集合:

<Cars>
    <Car id="1ECFD1AB-758D-4BA1-8D4A-387861E0B2E3">etc.</Car>
    <Car id="5C71E7A8-46C7-41F8-860E-69C95F917AD2">etc.</Car>
    <Car>etc.</Car>
    <Car>etc.</Car>
</Cars>

我将它传递给存储过程中的xml变量,并且需要一种方法来为没有一个的汽车添加带有新guid的id属性。

使用XQuery

执行此操作的最佳/最快/最有效的方法是什么?

1 个答案:

答案 0 :(得分:0)

不熟悉SQL的用法,但如果您可以在GUID-GOES-HERE处插入变量(并根据您的环境替换doc()语法),这可能会有效:

<Cars> {
for $Car in doc('test')//Car
return <Car id='{ if ($Car/@id) then $Car/@id else "GUID-GOES-HERE"}'>{$Car/text()}</Car>
} </Cars>

(在http://basex.org/products/live-demo/上测试)

请注意,这是使用XQuery而不是XQUF(我也不知道SQL的支持级别)。