6 Stimmen

Wie kann man das von einer gespeicherten Prozedur zurückgegebene XML in eine Variable einfügen?

Ich habe gespeicherte Prozedur, die XML zurückgibt. XML wird nicht als Parameter, sondern als Ergebnis von SELECT zurückgegeben:

create procedure #xml_test
as
  select 1 as a for xml raw
go

Ich versuche, dieses XML in eine Variable zu packen:

declare @xml as nvarchar(max)

Aber ich kann nicht herausfinden, wie man das macht. Meine beste Idee war INSERT INTO ... EXEC, aber ich erhalte die Fehlermeldung "Die FOR XML-Klausel ist in einer INSERT-Anweisung nicht zulässig.":

create table #tmp(col1 nvarchar(max) not null)

insert into #tmp
exec #xml_test

Dieser Ansatz eignet sich gut für gewöhnlichen Text:

create procedure #text_test
as
  select 'aaa' as a 
go

insert into #tmp
exec #text_test

Ich frage mich, ob jemand schon einmal auf dieses Problem gestoßen ist? Ich verwende SQL Server 2005

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X