【问题标题】:T-Sql returning XML column data as a node in a FOR XML queryT-Sql 返回 XML 列数据作为 FOR XML 查询中的节点
【发布时间】:2012-06-30 19:36:47
【问题描述】:

我在 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() 的视图,即

标签: xml tsql for-xml-path


【解决方案1】:

我已经整理好了。视图应该已将“类型”附加到 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 fromvenue v inner join eventVenue ev on ev.venueCode=v.code where ev.eventId=e.id for xml path('venue'), type)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 2022-11-15
    • 2020-02-06
    • 1970-01-01
    • 2018-10-18
    • 2018-08-24
    相关资源
    最近更新 更多