我有一个关系,它有一个 XML 列以以下结构存储数据
<Report id="b5d9b8da-7af4-4257-b825-b28af91dd833">
<CreatedDate>04-12-2012</CreatedDate>
<LastUpdated>04-12-2012</LastUpdated>
<Reference>abc123</Reference>
</Report>
我正在编写一个存储过程来检索所有报告并将它们加入并将它们包装在一个名为报告的根节点中。到目前为止,我有以下内容;
WITH XMLNAMESPACES(DEFAULT 'http://www.defaultnamespace.com/1.0')
SELECT
@Xml =
(
SELECT
(
SELECT xml.query('.')
FROM
[database].[Reports]
WHERE
ClientId = @clientId
FOR XML PATH(''),
TYPE
)
FOR XML PATH('Reports'),
TYPE
)
虽然这会以正确的格式返回所有报告,但报告元素上存在一个空白的默认命名空间,如下所示;
<Reports xmlns="http://www.defaultnamespace.com/1.0">
<Report xmlns="" id="b5d9b8da-7af4-4257-b825-b28af91dd833">
<CreatedDate>04-12-2012</CreatedDate>
<LastUpdated>04-12-2012</LastUpdated>
<Reference>abc123</Reference>
</Report>
</Reports>
有人可以解释在报告元素上排除命名空间的合适方法吗?
非常感谢任何帮助:)