我输入的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我在这里的第一个问题,所以请原谅错误,帖子中的非常规元素)
答案 0 :(得分:0)
尝试将XML选择查询更改为:
SELECT Pers.value('self::*', 'nchar(10)') as 'ID'
FROM
@xmlUserId.nodes('/users/id') as EMP(Pers)
以上查询应返回 <id>
元素中的所有 <users>
元素
<强> [SQL fiddle demo] 强>