zoukankan      html  css  js  c++  java
  • SQL Server2005 新数据类型XML

     在SQL Server2005中继续延续了微软在.Net中的设计思想 将XML和.Net紧密地结合到其中.用.Net在Sql2005中写存储过程定义函数我还没有研究过,今天就只简单得谈谈XML在SQL2005中的应用.

    相对SQLServer2000而言,2005在数据类型上最大的一点改变就是增加了XML这个数据类型.要把这个东西搞懂先就必须要懂XML.

    在数据库中xml的定义和使用和一般的数据类型没有多大差别,比如:

    • 创建表: create table xmltable(id int primary key,xml1 xml)
    • 定义变量:declare @x xml

    与一般的数据类型不同的是,xml下面直接提供了方法,可以对其中的数据进行操作.用到的方法有:

    query('Query') 方法 返回xml 此方法用于对 XML 实例进行查询。

    假设表xmlTest中有XML一字段xml1='<book id="1"><bookname>AJAX in Action</bookname> <price>10</price></book>' 那么执行

    declare @xml1 xml;
    select @xml1=xml1
    from xmlTest
    select @xml1.query('/book/bookname')

    这个时候就可以查询到其下面BookName的xml值<bookname>AJAX in Action</bookname>
     
    value('Query','type') 方法 返回具体类型 此方法用于从 XML 实例检索 SQL 类型的值。

    比如执行:select @xml1.value('(/book/bookname)[1]','varchar(max)')

    注意这里是[1]表示第一个数据,不是[0],返回结果:AJAX in Action
     
    exist('Query') 方法 返回布尔值 此方法用于确定查询是否返回非空结果。

    比如执行:select @xml1.exist('/book/id') 返回0,这里是查询/book/id,无法找到<book id="1">中的ID.
     
    modify(XML_DML) 方法  此方法用于指定 XML DML 语句以执行更新。

    比如执行:set @xml1.modify('insert <Author>Unknown</Author> after (/book/price)[1]  ');
    select @xml1这样就可以往原xml数据中插入一个属性,当然运行结果是:

    <book id="1"><bookname>AJAX in Action</bookname><price>10</price><Author>Unknown</Author></book>
     这里需要注意的是set和select不要混用.
    nodes() 方法  此方法用于将 XML 拆分成多行以将 XML 文档的组成部分传播到行集中。

    【本文章出自博客园深蓝居,转载请注明作者出处,如果您觉得博主的文章对您有很大帮助,欢迎支付宝(studyzy@163.com)对博主进行打赏。】
  • 相关阅读:
    Balder 3D开发系列之创建基本动画
    Expression Blend 的点滴(1)ListBox华丽大变身
    Balder 3D开发系列之创建天空盒
    Balder 3D开发系列之创建自己的primitives
    silverlight 中的应用程序库缓存
    Balder 3D开发系列之——sprite结合Camera旋转木马特效
    VisualTreeHelper不仅仅只是用来查看可视化树结构的
    Balder 3D开发系列之与Sprite初次相遇
    Balder 3D开发系列之给自定义基本体进行贴图操作
    【图解】通过Expression Blend快速制作具有物理效果的动画游戏
  • 原文地址:https://www.cnblogs.com/studyzy/p/690312.html
Copyright © 2011-2022 走看看