首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL Server FOR XML封闭元素?

SQL Server FOR XML封闭元素?
EN

Stack Overflow用户
提问于 2011-03-25 02:12:21
回答 2查看 2.6K关注 0票数 3

使用SQL Server2008,我有一个查询,它使用FOR XML发出结果集。现在它是一个不合规的片段。

如何将结果XML包装在一个封闭元素中,然后将一个简单的XML声明放在带有单个模式/名称空间引用的顶部,以使输出兼容?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-25 06:16:58

在SQL Server中,XML处理指令不能采用XML数据类型。

请参阅Limitations of the XML Data Type

这段代码

代码语言:javascript
运行
复制
declare @XML xml =  
  '<?xml version="1.0"?>
   <root>Value</root>'

select @XML

具有以下输出

代码语言:javascript
运行
复制
<root>Value</root>

您可以使用适当的XML处理指令将XML构建为字符串。

代码语言:javascript
运行
复制
declare @XML xml = '<root>Value</root>'
declare @XMLStr nvarchar(max) = '<?xml version="1.0"?>'
  
set @XMLStr = @XMLStr + cast(@XML as nvarchar(max))

select @XMLStr

输出

代码语言:javascript
运行
复制
--------------------------------------------------------------------------
<?xml version="1.0"?><root>Value</root>
票数 4
EN

Stack Overflow用户

发布于 2011-03-25 02:17:52

将"WITH XMLNAMESPACES“添加到开头,并将根()添加到FOR XML子句:

代码语言:javascript
运行
复制
WITH XMLNAMESPACES ( DEFAULT 'http://namespace_uri_here' )
SELECT * 
FROM TABLE
FOR XML AUTO, ROOT('TopLevel')
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5423560

复制
相关文章

相似问题

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