Quantcast
Channel: SQL.ru: Microsoft SQL Server
Viewing all articles
Browse latest Browse all 7251

Результат выполнения запроса с FOR XML EXPLICIT в переменную

$
0
0
Всем, привет.
Помогите пожалуйста, нужно результат выполнения запроса с UNION и FOR XML EXPLICIT записать в переменную


DECLARE @xml xml

SET @xml = 
(SELECT 1 AS Tag,
0 AS Parent,
'' AS [add_info_format!1],
null AS [add_info!2],
null AS [add_info!2!body!CDATA]
UNION ALL
SELECT 2 as Tag,
1 as Parent,
null AS [add_info_format!1],
'' AS [add_info!2],
'Здесь инфа которую нужно положить в блок CDATA' AS [add_info!2!body!CDATA]
FOR XML EXPLICIT, BINARY BASE64)


Выдает ошибку "The FOR XML clause is invalid in views, inline functions, derived tables, and subqueries when they contain a set operator. To work around, wrap the SELECT containing a set operator using derived table syntax and apply FOR XML on top of it."

Версия: SQL SERVER 2008 R2

Если без UNION например

SET @xml = 
(SELECT 1 AS Tag,
0 AS Parent,
'' AS [add_info_format!1],
null AS [add_info!2],
null AS [add_info!2!body!CDATA]
FOR XML EXPLICIT, BINARY BASE64)


Или

SET @xml = 
(SELECT 
'' as 'add_info', 
'Здесь инфа которую нужно положить в блок CDATA' as 'add_info/body'
FOR XML PATH (''), TYPE, ELEMENTS, ROOT ('add_info_format'))


Срабатывает.

Viewing all articles
Browse latest Browse all 7251

Trending Articles