2015-12-11 34 views
0

我有一個FOR XML子句的動態查詢。 我如何從中得到結果?獲取EXECUTE(@QUERY)和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); 
+0

你的問題到底是什麼 - 執行將返回結果就像運行本機查詢一樣。 – Hogan

回答

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查詢中的這個變量。