Присвоение результатов для FOR XML EXPLICIT UNION переменной
Этот запрос работает нормально
SELECT 1 AS TAG, NULL AS parent, 1 [dog!1]
UNION (SELECT 1,NULL, 3)
FOR XML EXPLICIT, ROOT('dogs')
Я хотел бы присвоить его переменной. Это прекрасно работает без объединения:
DECLARE @x xml
SET @x = ((
(SELECT 1 AS TAG, NULL AS parent, 1 [dog!1]
FOR XML EXPLICIT, ROOT('dogs'))
))
Как только я представляю союз, он не работает:
DECLARE @x xml
SET @x = ((
(SELECT 1 AS TAG, NULL AS parent, 1 [dog!1]
UNION (SELECT 1,NULL, 3)
FOR XML EXPLICIT, ROOT('dogs'))
))
Пробовал все виды вещей. Чего мне не хватает
1 ответ
Решение
Вам просто нужно добавить еще один уровень подзапроса, например:
DECLARE @X XML =
(
SELECT * FROM
(
SELECT 1 AS TAG, NULL AS parent, 1 [dog!1]
UNION
SELECT 1,NULL, 3
)X
FOR XML EXPLICIT, ROOT('dogs')
);
SELECT @X;