从SQL Server中的xmlstring解析多个xml元素

时间:2014-10-21 10:55:04

标签: sql sql-server xml sql-update

我输入的xml字符串是

<users><id>p1</id><id>p2</id><id>p3</id></users>

如果id与xml字符串中的id匹配,我想写一个更新查询来更新我的表中的'Request_Status'列

我试过这句话:

Update login set 
            Request_Status='A'
            where
            EmpId in
            (
                SELECT Pers.value('(id)[1]', 'nchar(10)') as 'ID'
                FROM
                        @xmlUserId.nodes('/users') as EMP(Pers)
            )

这只会更新ID p1而不会更新其他2。

我提到了这个,

How to loop and parse xml parameter in sql server stored procedure

(P.S我在这里的第一个问题,所以请原谅错误,帖子中的非常规元素)

1 个答案:

答案 0 :(得分:0)

尝试将XML选择查询更改为:

SELECT Pers.value('self::*', 'nchar(10)') as 'ID'
FROM
        @xmlUserId.nodes('/users/id') as EMP(Pers)

以上查询应返回 <id>元素中的所有 <users>元素

<强> [SQL fiddle demo]