1

我在使用 SQL Server 2008 将 XML 插入表中的 XML 列时遇到问题。

我插入

<test></test>

SQL Server 列将其存储为:

<test />

现在,我知道最新的表单实际上是正确的,而第一个表单并不是真正正确的 XML 语法,但我必须保留 XML,因为它是通过从客户导入传入的。在它的原始形式。

我们多年来一直在使用 DB2,并且 DB2 不会改变您插入的 XML。

所以我的问题是......是否可以在 SQL Server 2008 中禁用 XML 列的 XML 优化?

4

1 回答 1

1

SQL Server 将以优化的形式存储您的 XML 的语义正确表示;存储的不是您输入的实际字符串(它被解析为 XML“片段”,并且以优化的方式存储)。

但是您不能强制从XML列中再次呈现相同的表示形式 - SQL Server 将呈现出它认为 XML 内容的最佳字符串表示形式。

如果您确实需要 100% 相同的表示,那么您需要将 XML 存储为字符串列((n)varchar(x)或者(n)varchar(max)如果您需要超过 8000 字节的存储空间)

于 2012-10-11T07:24:34.617 回答