登录模块加载中...
会员投稿 投稿指南 今天是:
打印本页 | 关闭窗口 | 双击滚屏 您的位置首页>>网页制作学习园地>>XML教程>>XML应用>>使用Microsoft SQL Server 2000的XML查询
使用Microsoft SQL Server 2000的XML查询
来源:不详 ‖ 作者:佚名 ‖ 点击: ‖ 时间:13-07-06 09:23:49 ‖ 【 】‖ 我要投稿
由于XML本身的诸多优点,XML技术已被广泛的使用,目前的好多软件技术同XML紧密相关,比如微软的.net 平台对xml提供了强大的支持,提供System.Xml以及其子命名空间下的类型来操作xml。Ado.net通过核心类型DataSet出色的把关系型数据库同xml进行了紧密集成。由于平常许多开发人员使用.net 来操作Sql server的到数据集后再转换成xml,所以往往忽略Transact-SQL查询生成XML数据的强大功能。对于一些项目使用XML查询直接通过SQL生成xml会来的更为简便,所以我通过在实际项目中的使用和查阅一些资料写成一个知识点,一是温故而知新,二是对于一些开发者刚好需要这方面的技术而还没有找到比较快捷的学习方式提供一条途径。

在SQL SERVER 2000中查询生成XML的语法表达式比较简洁,整个语法如下:

SELECT 

FROM 

WHERE 

FOR XML AUTO | RAW | EXPLICIT [,XMLDATA ] [,ELEMENTS] [,BINARY BASE64]

下面我将以Northwind数据库来演示上面的表达式中所包含的各项功能,下面的查询语句和返回结果都通过SQL SERVER 2000查询分析器来执行和得到。


 

一. 使用AUTO模式

该模式我认为在生成单表xml数据方面是用得最多的,能满足一般的需要。先来看他的简单查询。

1.简单查询

查询语句:

SELECT CategoryID,

CategoryName 

FROM Categories 

WHERE CategoryID < 3 FOR XML AUTO

返回结果:





也可以使用别名,

查询语句:

SELECT CategoryID AS ID,

CategoryName,

GetDate() as CurrDate 

FROM Categories MyTable 

WHERE CategoryID < 3 FOR XML AUTO

返回结果:





2.连接查询

以两个表为例,

查询语句:

SELECT Categories.CategoryID,

Categories.CategoryName,

ProductID,

ProductName

FROM Categories  

JOIN Products ON Categories.CategoryID = Products.CategoryID AND ProductID <5

WHERE Categories.CategoryID < 3 FOR XML AUTO

返回结果:













可以看到表连接查询可以生成分层次的Xml,不过需要注意的是SELECT子句中的父表的列要排在子表的列的前面,否则会出现你不想看到的结果,如:

查询语句:

SELECT ProductID,Categories.CategoryID,Categories.CategoryName,ProductName

FROM Categories  

JOIN Products ON Categories.CategoryID = Products.CategoryID  and ProductID <5

WHERE Categories.CategoryID <3  
|<< << < 1 2 3 4 5 6 7 8 9 10 > >> >>|
加入收藏:  加入收藏夹  | 发送给好友:  发送给好友
责任编辑:admin
  • 上一篇:Tomcat中用web.xml控制Web应用详解
  • 下一篇:无
  • 相关文章列表
    请文明参与讨论,禁止漫骂攻击。  
    网友评论