1

是否可以更新表并在 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('')

当然,这是行不通的。我究竟做错了什么?一如既往,非常感谢任何帮助!

4

1 回答 1

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')

并将其保存到您想要的位置。

于 2012-06-21T13:42:08.980 回答