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

We can not insert the updated values to XML directly.
If you want to save XML of updated data, then you need to make it in two steps:

Step 1: Use Table Variable and insert the updated data into that table variable (as simple process)

DECLARE @Updated AS TABLE(columns..)

UPDATE Customers  
SET FirstNam = 'New_Name'
OUTPUT INSERTED.FirstNam @Updated
WHERE Id = 2

Step 2:

Generate XML from table variable @Updated as:

SELECT *
FROM @Updated
FOR XML PATH(''), ROOT('Cust')

and save it to the place where you want.

于 2012-06-21T13:42:08.980 に答える