从exec存储过程获取xml

时间:2017-09-19 11:16:34

标签: sql-server xml stored-procedures for-xml

我正在尝试将执行的存储过程的结果作为表的XML检索,结果显示为最初。

我想要做的就是这样。

exec dbo.StoredProcedure FOR XML RAW, ROOT ('root_name').

让我们说exec dbo.StoredProcedure返回存储过程中的表, 我希望FOR XML RAW, ROOT ('root_name')返回整个结果的XML值。

如何在SQL服务器中实现此目的?

2 个答案:

答案 0 :(得分:2)

一种方法是使用INSERT...EXEC将proc结果插入临时表或变量中,然后从该表中选择所需的FOR XML查询:

DECLARE @results AS TABLE(col1 int, col2 int);
INSERT INTO @results EXEC dbo.StoredProcedure;
SELECT col1, col2
FROM @results
FOR XML RAW, ROOT ('root_name');

答案 1 :(得分:1)

根据this问题,您不应该从存储过程中进行选择。此外,如果你深入研究这个问题,你会发现一个链接到一个有趣的article描述你对存储过程的选择。

如果我是你,我会将带有输出参数的XML或insert-exec返回到表中,然后使用for xml进行查询。