是否可以更新表并在FOR XML语句中返回更新的值? 请考虑以下客户表:
Customers
Id FirstNam LastNam
1 John Doe
2 James Smith
3 Martin Jones
我想将ID为2的客户的FirstNam更新为David,并将结果作为XML返回。
我尝试过使用:
UPDATE Customers
SET FirstNam = 'David'
WHERE Id = 2
OUTPUT inserted.FirstNam
FOR XML PATH('')
当然,这不起作用。我究竟做错了什么?一如既往,非常感谢任何帮助!
答案 0 :(得分:1)
我们无法直接将更新后的值插入XML 如果要保存更新数据的XML,则需要分两步完成:
步骤1:使用表变量并将更新的数据插入到该表变量中(作为简单过程)
DECLARE @Updated AS TABLE(columns..)
UPDATE Customers
SET FirstNam = 'New_Name'
OUTPUT INSERTED.FirstNam @Updated
WHERE Id = 2
第2步:
从表变量@Updated生成XML:
SELECT *
FROM @Updated
FOR XML PATH(''), ROOT('Cust')
并将其保存到您想要的地方。