[zt] 浅析数据库的FOR XML的应用—RAW模式


          在sql server 2005中使用xml,非常方便。不仅有XML数据类型,并且对于标准数据行集与XML的转换,提供了查询的子句,也提供了处理XML的方法。
FOR XML是sql server提供的查询子句,通过该查询语句,将标准数据行集构造为一个XML。FOR XML 模式可以是 RAW、AUTO、EXPLICIT 或 PATH。它确定产生的 XML 的形状。
通过如下这个表的实际查询,初探FOR XML RAW模式的使用。示例表名叫user,查询所有数据如下:
select userid,loginname,username,registertime from [user]

现在就对这个表使用FOR XML进行查询:
1 select * from [user] for xml raw
查询结果如下:



RAW 模式将查询结果集中的每一行转换为带有通用标识符 或可能提供元素名称的 XML 元素。默认情况下,行集中非 NULL 的每列值都将映射为 元素的一个属性。
2 select * from [user] for xml raw('item')
查询结果如下:



可以自定义行元素的名称为item。
3 select * from [user] for xml raw('item'),XMLSCHEMA
查询结果如下:
  http://www.w3.org/2001/XMLSchema" xmlns:sqltypes="http://schemas.microsoft.com/sqlserver/2004/sqltypes">
  http://schemas.microsoft.com/sqlserver/2004/sqltypes" schemaLocation="http://schemas.microsoft.com/sqlserver/2004/sqltypes/sqltypes.xsd" />
 
   
     
     
       
         
           
         
       
     
     
       
         
           
         
       
     
     
   
 

到此为止,为xmlschema架构。可见,item为一个元素,而UserID,LoginName,UserName,RegisterTime均为该元素的属性。红色标识的为元素和属性。实际查询结果如下:



4 select * from [user] for xml raw('item'),XMLSCHEMA,ELEMENTS
查询结果如下:
  http://www.w3.org/2001/XMLSchema" xmlns:sqltypes="http://schemas.microsoft.com/sqlserver/2004/sqltypes">
  http://schemas.microsoft.com/sqlserver/2004/sqltypes" schemaLocation="http://schemas.microsoft.com/sqlserver/2004/sqltypes/sqltypes.xsd" />
 
   
     
       
       
         
           
             
           
         
       
       
         
           
             
           
         
       
       
     
   
 

此xmlschema架构,item为一个元素,而UserID,LoginName,UserName,RegisterTime也都成为了一个元素。此架构比较符合我们平时所用的xml文件。

  4959E391-63DC-4BBF-ACEA-63EC673AEC45
  admin
  管理员
  2007-02-10T00:00:00


  4959E391-63DC-4BBF-ACEA-63EC673AEC46
  user1
  用户1
  2007-02-08T00:00:00


  4959E391-63DC-4BBF-ACEA-63EC673AEC47
  user2
  用户2
  2007-02-09T00:00:00

本文来源于金色坐标 http://www.kingxy.com/ , 原文地址:http://www.kingxy.com/archives/106.html


 


 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-609353/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/35489/viewspace-609353/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值