有没有办法在sql server中将最后一行更新为XML?
考虑这个片段
DECLARE @table TABLE (
NAME NVARCHAR(255)
,Col2 INT
)
INSERT INTO @table
VALUES (
'a1'
,1
)
INSERT INTO @table
VALUES (
'a2'
,2
)
UPDATE @table
SET NAME = 'hello'
OUTPUT inserted.*
WHERE Col2 = 2
以上语句输出更新的行。如何将行输出为XML,就像使用SELECT
语句一样?
我尝试了SELECT
语法,但没有成功。
UPDATE @table
SET NAME = 'hello'
OUTPUT (inserted.* FOR XML AUTO)
WHERE Col2 = 2
除了将它写入表并从表中选择之外,还有什么方法可以实现这一目标吗?
答案 0 :(得分:0)
除了将它写入表格之外,还有什么办法可以实现这一目标 并从表中选择?
不是我知道的。创建一个表变量,在其中插入更新的输出,然后使用它来创建所需的XML输出。
DECLARE @table TABLE
(
NAME NVARCHAR(255),
Col2 INT
);
INSERT INTO @table VALUES ('a1', 1);
INSERT INTO @table VALUES ('a2', 2);
DECLARE @updateresult TABLE
(
NAME NVARCHAR(255),
Col2 INT
);
UPDATE @table
SET NAME = 'hello'
OUTPUT inserted.NAME,
inserted.Col2
INTO @updateresult(Name, Col2)
WHERE Col2 = 2
SELECT NAME, Col2
FROM @updateresult
FOR XML PATH('row');