问题描述
CREATE TABLE Employee
(
ID INT,Name VARCHAR(200),ExtraInfo XML
)
我必须为 ExtraInfo 列使用 XML 数据类型,并且我有以下 INSERT 语句
INSERT INTO Employee
VALUES
(1,'John Doe',CONVERT(XML,'<root><section><![CDATA[Some weird content with weird characters (*&#^@$]]></section></root>'))
执行上述语句后,我在 ExtraInfo 列中得到以下内容。
<root>
<section>Some weird content with weird characters (*&#^@$</section>
</root>
如何保持我的 CDATA
部分完整?
我已经检查了 other related question,这不是我想要的。
解决方法
我实际上是在从 Microsoft 那里寻找一些东西,说明 XML 数据类型不支持 CDATA 部分。
这里是:How to get [CDATA] with FOR XML PATH?
引用 Michael Rys 的话,他在 Microsoft 负责 SQL Server 中的大部分 XML 内容:
XML 数据类型不保留 CDATA 部分...它是 W3C XQuery 建议它不保留 CDATA 部分。