当前位置:首页 > 系统运维 > 正文内容

SQL Server数据库之一个 SQL 2005 XML 查询的例子

a8116255316年前 (2010-06-28)系统运维9

此文章主要向大家讲述的是SQL Server数据库之一个 SQL 2005 XML 查询的例子,我们大家都知道SQL Server 2005 新增的一个特性主要是对 XML 的支持的增强,现在有很多的文章都在鼓吹 XML 是如何如何的有用,但惭愧的是我学习了好几年的数据库。

很少在实际应用中触碰过 XML,因为用户很少有这方面的需求。最近用户给了一段类似下面结。

SQL Server 2005 新增的一个特性是对 XML 的支持的增强,好多文章都在鼓吹 XML 是如何如何的有用,但惭愧的是我学习了好几年的数据库,很少在实际应用中触碰过 XML,因为用户很少有这方面的需求。最近用户给了一段类似下面结构的 XML。

declare @xdoc xml  set @xdoc = '<conn> <mysql servername="192.168.1.120,3306"> <user name="root" password="" /> <user name="dba" password="" /> <user name="user" password="" /> </mysql> <mssql servername="192.168.1.110,1433"> <user name="sa" password="" /> <user name="dba" password="" /> <user name="user" password="" /> </mssql> <excel id="1" path="c:database" filename="source1.xls" /> <excel id="2" path="d:database" filename="source2.xls" /> <excel id="3" path="e:database" filename="source3.xls" /> </conn> '  

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

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

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

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

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

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

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

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

以上的相关内容就是对SQL Server数据库之一个SQL 2005 XML查询例子的介绍,望你能有所收获。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://2345hao.cn/blog/index.php/post/21277.html

分享给朋友:

“SQL Server数据库之一个 SQL 2005 XML 查询的例子” 的相关文章

windows 7系统开机提示press any key to restart的故障分析及解

windows 7系统开机提示press any key to restart的故障分析及解

Windows 7 64位系统开机后提示"press any key to restart",无法进入系统了,具体现象如下所示: 故障分析: 故障的主要原因还是硬盘的问题,可以先检查是不是接触不良或坏了,进行修复或更换即可。 解决方法: 1、开机按F8不动到高级选项出现在松手,选“...

Win 7系统中其他声音正常但酷狗音乐没声音怎么回事

Win 7系统中其他声音正常但酷狗音乐没声音怎么回事

故障现象: Windows 7酷狗软件无声音,系统声音正常。 原因分析: 1. 查看酷狗软件设置 2. 查看系统设置 解决方案: 1. Windows 7操作方法 如图:查看是否处于禁音状态   Windows 7系统声音正常酷狗音乐无声音 2. 查看设置音频输出是否...

windows 7如何给c盘扩容 图解windows 7 64位系统C盘扩容方法(自

windows 7如何给c盘扩容 图解windows 7 64位系统C盘扩容方法(自

用Windows 7久了,C盘越来越大,原来50G的空间基本用完了,又不想重装系统,就想着能不能直接扩容。 在网上搜了半天,看了无数教程,都写得不明不白的,结合了几篇教程才终于搞明白。 重新总结一下,方便有需要的人。 所用软件: http://www.jb51.net/softs/57895...

windows 7旗舰版系统提示应用程序错误代码0xc0000409的故障原因

windows 7旗舰版系统提示应用程序错误代码0xc0000409的故障原因

问题现象,具体如下所示:  故障分析: 一般来说,出现这种情况是因为电脑误删系统文件或者是系统文件被顽固木马破坏。       解决方法: 1、下载360安全卫士,找到里面的急救箱开始急救,然后进行修复,完成后重新启动; 2、下载瑞...

微软为windows 7用户重新发布补丁KB2952664 帮助提升Win10升级体

微软为windows 7用户重新发布补丁KB2952664 帮助提升Win10升级体

1月13日消息,微软今天为Windows 7(SP1)用户重新推送了编号为KB2952664的更新补丁,该更新在官方KB知识库中的描述为“Windows 7系统升级兼容性更新”,用于帮助微软改进当前版本系统,提升升级到最新版Win10系统的体验。 这项更新还用于在系统中显示Windows10更新提...

Ubuntu 14.10上安装新的字体图文教程

Ubuntu 14.10上安装新的字体图文教程

像Ubuntu这种开源系统,一般都自带有好多漂亮的字体,不过假如您想使用您熟悉的字体,可以通过在Ubuntu或其它Linux系统上安装字体,帮助用户在使用开源OS平台上更好的视图体验。 软件名称:Ubuntu 14.04 官方正式版软件大小:752MB更新时间:2014-05-07 Ubun...