SQL Server XML 数据类型

Posted

技术标签:

【中文标题】SQL Server XML 数据类型【英文标题】:SQL Server XML data type 【发布时间】:2011-04-06 17:43:19 【问题描述】:

我在 SQL Server 2005 SP4 中有一个表;其中一列将是 XML 数据类型。

问题是我的 XML 可以是三种不同的格式。 (即 XML 不一样,但最多可以有三种不同的格式)我想使用类型化的 XML 所以

问题 a) 我可以为三个不同的 xml 创建具有 XML 架构的 XML 架构集合

我在 Adventureworks 数据库 Production.ProductModel 中看到一个表,其中 catalogdescription 列应用了三种不同的模式。

b) XML 将从 ASP.net webform 生成;我应该在 ASP.net 中构造 XML 还是将所有表单数据导入 SQL 并在那里构造 XML?

谢谢

【问题讨论】:

【参考方案1】:

对于您的第一个问题 - 是的,您可以定义一个 XML 模式集合,它可以 - 正如名称“集合”所暗示的那样 - 包含多个 XML 模式:

-- First create an XML schema collection.
CREATE XML SCHEMA COLLECTION MySchemaCollection 
  AS '<schema .......> ...... </schema>'

-- Modify the collection. 
ALTER XML SCHEMA COLLECTION MySchemaCollection 
  ADD '<schema ......>  ...... </schema>'

这样,您可以为三种类型的 XML 数据定义三个单独的模式。

有关详细信息,请参阅 MSDN 文档Managing XML Schema Collections in SQL Server。

至于您的第二个问题:我想在您的 ASP.NET 应用程序中创建它并在生成后存储它可能更容易 - 否则您必须首先以某种关系形式存储数据(表),然后从中生成 XML。

【讨论】:

以上是关于SQL Server XML 数据类型的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 对XML数据类型的SQL语句总结

从SQL Server的XML数据类型字段中提取数据

从 SQL Server 中的 XML 数据类型字段中提取数据

处理 XML 数据类型(SQL SERVER 2005)

动态获取 SQL Server 中不同列中的 XML 数据类型值

SQL Server XML 数据类型和 QUOTED_IDENTIFIER