首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从EndDate查询ReportServer..Subscriptions.MatchData值

如何从EndDate查询ReportServer..Subscriptions.MatchData值
EN

Database Administration用户
提问于 2012-03-13 20:04:36
回答 1查看 2K关注 0票数 4

在SQL2008SSRS中,我收集了一些关于R2元数据的管理查询,以检查正确的配置和其他一些积极主动的东西。

在查询ReportServer db时,我成功地检查了报表、共享数据源等。我遇到困难的一件事是查询Subscriptions.MatchData列中的任何值。该列中的所有内容都返回为NULL (除非我返回该列的全部内容)。

具体来说,我需要EndDate的值。我尝试过一些调整,但都没有效果,包括玩XPath、XMLNamespace等。我发现了2005年它应该如何工作的基本例子。2008年有什么不同之处在于,这是行不通的?如何在2008年的R2中查询此值?

代码语言:javascript
复制
`
SELECT
[Description]
,x.m.value('StartDateTime[1]','varchar(30)') AS StartDateTime
,x.m.value('EndDate[1]','varchar(10)') AS EndDate
FROM
(
    SELECT
        [description]
        ,CAST(MatchData AS XML) AS MatchData
    FROM ReportServer.dbo.Subscriptions
) AS P
CROSS APPLY MatchData.nodes('//ScheduleDefinition') x(m)
`
EN

回答 1

Database Administration用户

回答已采纳

发布于 2012-05-08 08:11:33

将其抛出的是标记中的XML名称空间。为了解决这个问题,您需要使用with XMLNameSpaces子句。

让这个查询试一试。我已经在一个测试实例(2008年而不是2008年r2)上测试了这一点,所以您可能需要更改实际的命名空间定义来匹配您的xml数据。

代码语言:javascript
复制
with xmlnamespaces('http://schemas.microsoft.com/sqlserver/2006/03/15/reporting/reportingservices' as rs)
SELECT
[Description]
,m.value('rs:StartDateTime[1]','varchar(30)') AS StartDateTime
,m.value('rs:EndDate[1]','varchar(30)') AS EndDate
FROM
(
    SELECT
    [description],
    CAST(MatchData AS XML) AS MatchData
    FROM ReportServer.dbo.Subscriptions
) AS P
CROSS APPLY MatchData.nodes('/ScheduleDefinition') x(m)

WITH XMLNAMESPACES子句的SQL引用:

http://msdn.microsoft.com/en-us/library/ms177400.aspx

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/17538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档