T-Sql возвращает данные столбца XML в качестве узла в запросе FOR XML

У меня есть представление в SQL Server 2005, содержащее столбец данных xml. Столбец получен из запроса for xml path(), т.е.

SELECT     e.id, eventTypeCode, e.startDate, e.endDate,
(select v.name 
 from venue v inner 
 join eventVenue ev on ev.venueCode=v.code 
 where ev.eventId=e.id for xml path('venue')) as venues    
FROM dbo.event e 
inner join eventType t on e.eventTypeCode=t.code 

Теперь я хочу обратиться к этому представлению в хранимой процедуре, которая возвращает данные в виде xml, т.е.

create procedure getWebsiteMainCalendarEvents
@startDate datetime,
@endDate datetime
as
select * from vwWebsiteMainCalendar 
 where startDate between @startDate and @endDate 
order by startDate for xml path() element

Я бы хотел, чтобы места из представления отображались как подузлы при запуске процедуры, но < и > кодируются как объекты html. Есть ли способ заставить процедуру обрабатывать данные xml как узел xml на выходе?


person David Willington    schedule 29.06.2012    source источник
comment
Я разобрался. Представление должно иметь «тип», прикрепленный к пути xml(), т.е.   -  person David Willington    schedule 29.06.2012


Ответы (1)


Я разобрался. Представление должно было иметь «тип», прикрепленный к пути xml(), т.е.

-- VENUES
(select v.name from venue v inner join eventVenue ev on ev.venueCode=v.code where ev.eventId=e.id for xml path('venue'))

должно быть

-- VENUES

(выберите v.name из места проведения v внутреннее соединение eventVenue ev на ev.venueCode=v.code, где ev.eventId=e.id для пути xml ('место'), тип)

person David Willington    schedule 29.06.2012