感谢关注
我做的一个测试,很简单的一个表,结构如下:
CREATE TABLE [dbo].[TXmlData](
[FID] [int] IDENTITY(1,1) NOT NULL,
[XmlNode] [xml] NOT NULL,
CONSTRAINT [PK_TXmlData] PRIMARY KEY CLUSTERED
(
[FID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
执行:
insert into TXmlData values('<PicUrl><![CDATA[ae3ceb5c-fee9-459a-a3ef-dce238360d27]]></PicUrl>')
之后,我查询数据库,发现XmlData字段里的内容,没有了CDATA部分,存储的内容为:
<PicUrl>ae3ceb5c-fee9-459a-a3ef-dce238360d27</PicUrl>
我想知道,我如果希望写入:
<PicUrl><![CDATA[ae3ceb5c-fee9-459a-a3ef-dce238360d27]]></PicUrl>
我该如何设计数据库或是如何操作呢?
------解决思路----------------------
喵
http://www.cnblogs.com/long-gengyun/archive/2011/09/06/2168397.html
------解决思路----------------------
我想你理解错了
本身<![CDATA[ae3ceb5c-fee9-459a-a3ef-dce238360d27]]> 已经将其内部的ae3ceb5c-fee9-459a-a3ef-dce238360d27解析为字符串了,所以插入的效果没有问题,如果你要得到<![CDATA[ae3ceb5c-fee9-459a-a3ef-dce238360d27]]>,外面再套一个<![CDATA[<![CDATA[ae3ceb5c-fee9-459a-a3ef-dce238360d27]>]]>
这样查询出来的字符就是
SELECT v FROM TXmlData t1
cross apply (select n.v.value('.','varchar(100)')v from t1.XmlNode.nodes('/PicUrl') n(v))t2
--<![CDATA[ae3ceb5c-fee9-459a-a3ef-dce238360d27]>
------解决思路----------------------
