科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道[Sql server]2005的XML最佳实施策略(20)

[Sql server]2005的XML最佳实施策略(20)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Microsoft SQL Server 2005 为 XML 数据处硖峁┝斯惴旱闹С帧ML 值可以自然地存储在 XML 数据类型列中,而后者可以根据 XML 架构集合进行类型化,或者保持非类型化。

作者:Shankar Pal 来源:microsoft 2007年9月16日

关键字: 实施策略 数据库 SQL Server SQL Server 2005

  • 评论
  • 分享微博
  • 分享邮件

可以将结果赋给 XML 数据类型列、变量或参数。而且,可以将 FOR XML 嵌套以便生成任意层次结构。这使得嵌套的 FOR XML 比 FOR XML EXPLICIT 更加便于编写,但是对于较深的层次结构,它的性能可能不太好。FOR XML 还引入了新的 PATH 模式,该模式指定列的值应该出现在 XML 树中的哪个路径。

可以使用新的 FOR XML TYPE 指令,通过 SQL 语法来定义关系数据上的只读 XML 视图。可以通过 SQL 语句和嵌入式 XQuery 来查询该视图,如下面的示例所示。例如,您可以在存储过程中引用此类 SQL 视图。

示例:返回生成的 XML 数据类型的 SQL 视图

下面的 SQL 视图定义可在一个关系列 (pk) 以及从一个 XML 列中检索到的书籍作者上创建一个 XML 视图:

CREATE VIEW V (xmlVal) AS

SELECT pk, xCol.query('/book/author')

FROM T

FOR XML AUTO, TYPE

视图 V 包含一个行,该行只有一个列:XML 类型的 xmlValtype。可以像查询常规的 XML 数据类型实例那样查询它。例如,下面的查询将返回名字为"David"的作者:

SELECT xmlVal.query('//author[first-name = "David"]')

FROM V

SQL 视图定义在某种程度上类似于使用带有批注的架构创建的 XML 视图。然而,二者之间存在重要的区别。SQL 视图定义是只读的,并且必须通过嵌入式 XQuery 来操作;而使用带有批注的架构的 XML 视图则不是这样。而且,SQL 视图在应用 XQuery 表达式之前生成 XML 结果,而 XML 视图上的 XPath 查询在基础表上计算 SQL 查询。

 

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章