Sql server SQLServerXML查询不返回任何内容

Sql server SQLServerXML查询不返回任何内容,sql-server,Sql Server,每个或某些ssrs报告都有以下标签: xmlns="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns:df="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportd

每个或某些ssrs报告都有以下标签:

xmlns="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition"
xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner"
xmlns:df="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition/defaultfontfamily"
MustUnderstand="df"
除非删除上面指定的属性,否则此查询不会返回任何数据。在给定的xml中,无法删除属性

declare @content xml =
'<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns:df="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition/defaultfontfamily" MustUnderstand="df">
  <DataSets>
    <DataSet Name="DS">
      <Query>
        <CommandText>rep.my_proc</CommandText>
      </Query>
    </DataSet>
  </DataSets>
</Report>'

  select 
      'DB growth' as ReportName, 
      CommandText = x.value('(Query/CommandText)[1]','VARCHAR(250)')
  from  @content.nodes('Report/DataSets/DataSet') r (x)
该查询中有错误吗?

请查看

使用XMLNAMESPACESDEFAULT'添加http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition'在选择之前
declare @content xml =
'<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition"     xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns:df="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition/defaultfontfamily" MustUnderstand="df">
  <DataSets>
    <DataSet Name="DS">
      <Query>
        <CommandText>rep.my_proc</CommandText>
      </Query>
    </DataSet>
  </DataSets>
</Report>'

;WITH XMLNAMESPACES(DEFAULT 'http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition')
select 
    'DB growth' as ReportName, 
    CommandText = x.value('(Query/CommandText)[1]','VARCHAR(250)')
from @content.nodes('Report/DataSets/DataSet') r (x)