T-SQL在FOR XML查询中返回XML列数据作为节点

3

我在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节点处理?

我已经排好序了。视图需要在 for xml path() 中附加 'type'。 - David Willington
1个回答

0

我已经排好序了。视图应该附加 'type' 到 for xml path(),即

-- 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

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

(选择v.name from场馆v内连接eventVenue EV,EV.venueCode=v.code其中EV.eventId=e.id用于xml路径(“venue”),类型)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接