gpt4 book ai didi

.net - SqlServer Xml 数据类型 - 如何强制完整结束元素

转载 作者:行者123 更新时间:2023-12-04 06:19:23 25 4
gpt4 key购买 nike

我在 SQL Server 中有一个表...

[ID] [int] IDENTITY(1,1) NOT NULL,
[FirstName] [nvarchar](100) NULL,
[LastName] [nvarchar](100) NULL,
[DataItemsXml] [xml] NULL,

它有一个 xml 列。我想以以下格式将 xml 存储在此列中...
<data>
<item-1>Some Data Here</item-1>
<item-2></item-2>
</data>

注意空元素 item-2。我需要以这种方式存储它以支持一些我无法修改的代码。

即使我以这种格式在插入或更新语句中传递 XML 时,SQL Server 似乎也会将像 item-2 这样的空元素转换为以下内容...
<data>
<item-1>Some Data Here</item-1>
<item-2 />
</data>

我知道这是完全有效的 XML,但我需要让 SQL Server 以第一种格式存储它,并带有完整的元素结束标记,即使是空元素也是如此。

我无法弄清楚如何做到这一点。

有任何想法吗?谢谢!

最佳答案

According to Microsoft :

SQL Server preserves the content of the XML instance, but does not preserve aspects of the XML instance that are not considered to be significant in the XML data model. This means that a retrieved XML instance might not be identical to the instance that was stored in the server, but will contain the same information.



我找不到任何强制 SQL Server 根据需要扩展元素的选项。

如果您只需要存储 XML 而不是查询它,您可以将其存储为 varchar(max)字段,这将避免重新解析。或者,如果它需要是实际的 xml字段,您可以在检索它时将其转换为文本,使用字符串操作将紧凑表示转换为结束元素形式。尽管理论上可能在 SQL Server 中执行此类字符串操作,但如果可以,最好在 CLR 过程或应用程序中执行此操作。

关于.net - SqlServer Xml 数据类型 - 如何强制完整结束元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6793721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com