T/SQL:XML上Select的格式结果存储为NVarchar(Max)



我不确定为什么,但是我们的nlog配置现在被存储为表中的nvarchar(max)列。使用列上的标准选择,我将获得输出,例如:

<variable name="HeaderLayout".... 

我尝试使用" For XML Auto",以及一系列替换功能,以从此列中获得漂亮,漂亮的XML输出。选项A不会自动将替换标记施加到<或>,选项B确实很笨拙。有人可以推荐一个好的,为什么要以格式的XML检索配置?

作为奖励,我希望能够采取格式化的XML,进行更改,然后以最少的努力插入,但是就目前而言,我只是满足于能够使SELECT更多的结果更加满意可读。

谢谢!

首先将值铸成XML。这将创建一个用整个XML作为单个值创建XML。然后,您使用值函数从XML获得该值,最后您将获取的值归还给XML。

这是一些可以在。

上测试的表变量的代码。
declare @T table
(
  Col nvarchar(max)
)
insert into @T(Col)
values('<root><item ID="1">textvalue</item></root>') 
select cast(cast(T.Col as xml).value('.', 'nvarchar(max)') as xml) as XMLCol
from @T as T

结果:

XMLCol
-------------------------------------------
<root><item ID="1">textvalue</item></root>

尝试FOR XML AUTO, TYPE。您可以提供查询的示例吗?

最新更新