SQLServer2005新增一特性的描述

以下的文章主要向大家讲述的是SQL Server 2005 新增的一个特性及,对 XML 的支持的增强,我看到过很多的文章都在鼓吹 XML 的功能是如何的神奇,但是惭愧的是我学习了好几年的数据库,很少在实际应用中触碰过 XML。

从网站建设到定制行业解决方案,为提供成都网站制作、成都网站设计服务体系,各种行业企业客户提供网站建设解决方案,助力业务快速发展。创新互联公司将不断加快创新步伐,提供优质的建站服务。

因为用户很少有这方面的需求。最近用户给了一段类似下面结构的 XML。

 
 
 
  1. declare @xdoc xml
  2. set @xdoc = '
  3. '

具体的要求就是:在 SQL 2005 中编写一个查询,取出 excel id=1 时的 path & filename。这个需求提醒了我,XML 在数据库中的一个常用需求就是取出 XML 节点中参数的值。

1. SQL 2005 XML 取出节点数据方法一。

 
 
 
  1. select excel_path = t.c.value('@path' ,'varchar(255)')
  2. ,excel_name = t.c.value('@filename' ,'varchar(255)')
  3. from @xdoc.nodes('/conn/excel') t (c)
  4. where t.c.value('@id', 'int') = 1
  5. excel_path excel_name
  6. c:\database\ source1.xls

2. SQL 2005 XML 取出节点数据方法二。

 
 
 
  1. select excel_path = @xdoc.value('(/conn/excel[@id="1"]/@path)[1]', 'varchar(255)')
  2. ,excel_name = @xdoc.value('(/conn/excel[@id="1"]/@filename)[1]', 'varchar(255)')
  3. excel_path excel_name
  4. c:\database\ source1.xls

3. SQL 2005 XML 取出节点数据方法三。

该方法是方法二的改进,我们可以在 xml.value() 函数中使用 sql:variable() 来为 XML 节点中的 id 提供一个动态的参数。

 
 
 
  1. declare @excel_id int
  2. set @excel_id = 1
  3. select excel_path = @xdoc.value('(/conn/excel[@id=sql:variable("@excel_id")]/@path)[1]', 'varchar(255)')
  4. ,excel_name = @xdoc.value('(/conn/excel[@id=sql:variable("@excel_id")]/@filename)[1]', 'varchar(255)')
  5. excel_path excel_name
  6. c:\database\ source1.xls 

上述的相关内容就是对SQL Server 2005 新增的一个特性是对 XML 的支持的增强的描述,希望会给你带来一些帮助在此方面。

分享标题:SQLServer2005新增一特性的描述
分享链接:http://www.gawzjz.com/qtweb/news45/206045.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联