2016-11-17 3 views
1

Ich habe eine Variable (@a) mit query:Speichern Dynamische Abfrageergebnis in variable

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

Wie xml Ergebnis (dynamic query) in eine andere Variable (@b) zu retten?

Ich habe versucht, temporäre Tabelle zu erstellen und dort Ergebnis von DynamicSQL einzufügen, aber das erlaubt nicht, XML-Ergebnis in Tabelle einzugeben.

+0

Mögliches Duplikat von [Speichern der FOR XML AUTO-Ergebnisse zu Variable in SQL] (http://stackoverflow.com/questions/914009/saving-the-for-xml-auto-results-to-variable-in-sql) – dlatikay

Antwort

2

Versuchen Sie, diese

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 

Sie werden nach Bedarf gewechselt werden müssen, um die Variablen und Tabellen. Lass uns wissen.

+0

Danke. Das hat funktioniert – Sher

0

Variable deklarieren und füllen. Ohne dynamischen 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 

Sie sollten dynamische qry nicht ohne Grund verwenden.