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

数据库 SQL Server
我们今天主要和大家一起分享的是SQL Server数据库之一个 SQL 2005 XML 查询的例子的实际操作流程,以下就是文章的主要内容描述。

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

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

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

 

  1. declare @xdoc xml  
  2. set @xdoc = '<conn> 
  3. <mysql servername="192.168.1.120,3306"> 
  4. <user name="root" password="" /> 
  5. <user name="dba" password="" /> 
  6. <user name="user" password="" /> 
  7. </mysql> 
  8. <mssql servername="192.168.1.110,1433"> 
  9. <user name="sa" password="" /> 
  10. <user name="dba" password="" /> 
  11. <user name="user" password="" /> 
  12. </mssql> 
  13. <excel id="1" path="c:\database\" filename="source1.xls" /> 
  14. <excel id="2" path="d:\database\" filename="source2.xls" /> 
  15. <excel id="3" path="e:\database\" filename="source3.xls" /> 
  16. </conn> 
  17. '  

具体的要求就是:在 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数据库之一个SQL 2005 XML查询例子的介绍,望你能有所收获。

【编辑推荐】

  1. Web环境下MS SQL Server中数据的磁带备份与恢复
  2. MS Access 数据库向 MS SQL Server 7.0 的迁移
  3. MS SQL Server 7.0 性能优化指南
  4. MS SQL Server 6.5 I/O 性能调整快速参考简述
  5. 针对MS SQL SERVER的安全防御方案
责任编辑:佚名 来源: 互联网
相关推荐

2011-08-03 10:40:17

SQL Server数全文检索

2011-04-06 11:34:52

SQL Server数查询优化

2011-08-02 13:26:38

JavaBeanSQL Server

2011-08-04 12:49:31

SQL Server数重复数据

2011-08-22 09:55:30

SQL Server 排序

2010-07-22 14:46:41

SQL Server

2010-07-08 15:26:05

SQL Server

2011-07-25 09:32:28

2010-07-12 12:41:16

SQL Server

2011-05-06 14:19:29

ExcelSQL Server

2011-08-04 18:55:53

SQL Server 用户sa登录失败

2011-08-15 11:24:46

SQL Server事务

2020-08-26 14:45:34

SQL数据库数次

2010-07-02 10:47:20

SQL Server

2011-08-15 15:40:57

SQL Server 系统数据库

2011-09-07 15:11:31

SQL Server同步

2011-03-30 13:24:23

SQL Server数故障修复

2010-06-30 13:19:17

SQL Server

2009-04-30 09:56:29

微软SQL Server 缓存依赖

2010-07-20 10:02:41

SQL Server
点赞
收藏

51CTO技术栈公众号