在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/

被折叠的 条评论
为什么被折叠?



