MS SQL Server中的FOR XML命令是否将文件保存在磁盘中?

时间:2014-08-19 12:19:30

标签: sql-server xml

MS SQL Server中的FOR XML命令是否将文件保存在磁盘中?

我正在创建一个触发器来记录表中的操作,并且该触发器的一部分是使用受影响的行创建XML。我正在考虑使用FOR XML来生成XML。

SELECT * 
FROM TBL_Test 
WHERE ID=3040
FOR XML RAW

我担心的是我会在触发器中使用它,每次调用FOR XML函数时我都不想在服务器中保存文件。

另外:你们知道如何解析varchar吗?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

与任何SELECT查询一样,带有FOR XML子句的查询会将结果返回给客户端,而不是将结果保存到磁盘。

您可以使用标量子查询将结果XML分配给varchar变量,而不是返回到客户端:

DECLARE @xml varchar(MAX) =
    (
        SELECT * 
        FROM dbo.TBL_Test 
        WHERE ID=3040
        FOR XML RAW
    );