Sql 使用FOR XML的EXEC查询

Sql 使用FOR XML的EXEC查询,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,当执行上述查询时,在sql中的关键字“for”附近声明不正确的语法,这会给我带来一个错误 任何帮助都将不胜感激。以下是我将如何解决这一问题: :XML ON EXEC sp_helprolemember FOR XML PATH, ROOT ('ResultSetData'),BINARY BASE64; 我认为不能将FOR XML添加到exec proc命令中。您必须创建一个临时表,将过程的结果插入临时表中,最后使用FOR XML从tamporary table中进行选择。 DECLARE

当执行上述查询时,在sql中的关键字“for”附近声明不正确的语法,这会给我带来一个错误


任何帮助都将不胜感激。

以下是我将如何解决这一问题:

:XML ON
EXEC sp_helprolemember FOR XML PATH, ROOT ('ResultSetData'),BINARY BASE64;

我认为不能将FOR XML添加到exec proc命令中。您必须创建一个临时表,将过程的结果插入临时表中,最后使用FOR XML从tamporary table中进行选择。
DECLARE @Results TABLE(DbRole     VARCHAR(20)
                 , MemberName VARCHAR(20)
                 , MemberSID  VARCHAR(50));

INSERT INTO @Results
EXEC sp_helprolemember 'your role name herer';

SELECT *
FROM   @Results
FOR XML PATH, ROOT('your root name here'), BINARY BASE64;