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

时间:2016-11-17 22:51:54

标签: sql-server tsql dynamic-sql

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

    select Field1 as [TD],Field2 as [TD]
from MLSFeed 
For XML raw('tr'), Elements

如何将xml结果(dynamic query)保存到另一个变量(@b)中?

我尝试创建Temporary表并插入DynamicSQL的结果,但这并不允许将xml结果输入到表中。

2 个答案:

答案 0 :(得分:2)

试试这个

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

您需要根据需要替换变量和表。请告诉我们。

答案 1 :(得分:0)

声明变量并填充它。没有动力的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

你不应该没有理由使用动态qry。