Сохранение результатов XML в переменную или таблицу в SQL - PullRequest
1 голос
/ 15 июня 2011

Как сохранить XML в переменную или таблицу, сгенерированную хранимой процедурой SQL?

Вот мой пример:

DECLARE @ReportResultXml TABLE(RXml XML)    
DECLARE @ResultXml  XML = NULL

INSERT @ReportResultXml EXEC (@Script + ' FOR XML RAW, ROOT, XMLSCHEMA, ELEMENTS')
SELECT @ResultXml = RXml FROM @ReportResultXml
EXEC Repor.ProcInsert 1, @ResultXml

SELECT @ResultXml

Переменная @Script содержит этот запрос SQL:

DECLARE @PeriodID INT
SET @PeriodID = 12
SELECT TOP 10 PeriodID, Name
FROM Agent.Points
WHERE PeriodID = @PeriodID

Этот оператор вызовет следующую ошибку:

Предложение FOR XML не разрешено в операторе INSERT.

1 Ответ

0 голосов
/ 30 ноября 2011

Это может помочь вам найти решение:

declare @script nvarchar(max)
set @script = 'select 1 as a, 2 as b for xml raw'

declare @ReportResultXml table (RXml XML)
declare @ResultXml xml

declare @sql nvarchar(max)

set @sql = 'set @ResultXml = (' + @script + ')'
execute sp_ExecuteSQL @sql, N'@ResultXml xml output', @ResultXml output

insert into @ReportResultXml select @ResultXml

select * from @ReportResultXml
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...