获取EXECUTE(@QUERY)和FOR XML的结果

时间:2015-12-11 14:38:37

标签: sql-server tsql

我有一个FOR XML子句的动态查询。 我如何从中获得结果?

DECLARE @QUERY NVARCHAR(MAX);

-- Here dynamicaly generated query. But for example i made it static
SET @QUERY = N'SELECT [CLMN]
FROM (
        SELECT 1 as [CLMN]
    ) TBL FOR XML PATH(''TBL'')';

EXECUTE(@QUERY);

我需要将结果插入到此代码的任何变量中:

EXECUTE(@QUERY);

1 个答案:

答案 0 :(得分:2)

你可以这样做:

declare @QUERY nvarchar(max), @RESULT xml

set @QUERY = N'select @RESULT = (
    SELECT [CLMN]
    FROM (
        SELECT 1 as [CLMN]
    ) TBL 
    FOR XML PATH(''TBL'')
)'

execute sp_executesql @QUERY, N'@RESULT xml output', @RESULT = @RESULT output

select @RESULT

只需将外部变量传递给动态查询,并在查询中将select ... for xml的结果分配给此变量。