Sql server 将动态查询结果保存到变量中

Sql server 将动态查询结果保存到变量中,sql-server,tsql,dynamic-sql,Sql Server,Tsql,Dynamic Sql,我有一个带查询的变量(@a): select Field1 as [TD],Field2 as [TD] from MLSFeed For XML raw('tr'), Elements 如何将xml结果(dynamicquery)保存到另一个变量(@b)中 我试图创建临时表并在其中插入DynamicSQL的结果,但这不允许将xml结果输入到表中。试试这个 DECLARE @MyOutput NVARCHAR(max) = ''; DECLARE @MyQuery NVARCHAR(

我有一个带查询的变量(@a):

    select Field1 as [TD],Field2 as [TD]
from MLSFeed 
For XML raw('tr'), Elements
如何将
xml
结果(
dynamicquery
)保存到另一个变量(@b)中

我试图创建临时表并在其中插入DynamicSQL的结果,但这不允许将xml结果输入到表中。

试试这个

DECLARE @MyOutput NVARCHAR(max) = '';
DECLARE @MyQuery NVARCHAR(max) = 'SELECT @MyOutput = (SELECT s.name FROM sys.databases s FOR XML AUTO)'
DECLARE @ParmDefinition NVARCHAR(500);

SET @ParmDefinition = N'@MyOutput nvarchar(max) OUTPUT';

EXECUTE sp_executesql @MyQuery
    ,@ParmDefinition
    ,@MyOutput = @MyOutput OUTPUT;

SELECT @MyOutput

您需要根据需要替换变量和表。让我们知道。

声明变量并填充它。没有动态qry

declare @a xml
set @a = (
    select Field1 as [TD],Field2 as [TD]
    from MLSFeed
    for xml raw('tr'), elements)

--select @a

declare @b xml -- you asked for @b
set @b = @a

您不应该无缘无故地使用Dynamic qry。

感谢的可能副本。成功了