易截截图软件、单文件、免安装、纯绿色、仅160KB

SQl 2005 For XMl 简单查询(Raw,Auto,Path模式)(1)

 很多人对Xpath可能比较熟悉,但不知道有没有直接操作过数据库,我们都知道 在Sql2005里公支持的几种查询有Raw,Auto,Path模式等,如果在2000里使用过 Path模式的朋友应该知道,是不容易处理查询结果的,那么在2005里对这一块做了很好的提升
        我先来介绍一下什么是Sql For Xml吧,我们大多时候都会有这种情况,想把表里的数据转化成Xml格式的,通常我们会使用c#或是Vb程序来转公,使用Xpath或是XmlDocument等对象来完成,当然这样是可以的,不过这样处理起来就会出现很多问题,比如说数据库变化,如果只有数据变化那方便,写一个通用的类,每次查询前更新Xml文件就可以了,但如果出现数据库结构的变化就会很吃力了,那么有没有一种方法,把数据在调出数据库之前就转化为Xml的呢,这个是当然的,就是我们的For Xml,大家在查询分析器里做表结果查询的时候一般是这样写的
  
   我们给大家展示一下我所用到的两个表吧
   第一个表班级信息表ClassInfo(班级信息表一共三个字段CID 本表ID,Cnumber 班级人数,CName 班级名称)
  
 第二个表 生信息表 Students (CID 班级表外键,SID学生信息表ID学生的学号就是,SName)
SELECT CID,Cnumber,CName from ClassInfo WHERE CName='博客园一班'
 结果为:
通常是这种方法,或是再加上个Order BY 什么的,或是像inner join 等查询的东东,其实我们只要在这条语句上少量的改动一下就可以得到我们想要的Xml数据了,也许 有朋友已经想到了是 For Xml 对就是这样的
SELECT CID,Cnumber,CName from ClassInfo WHERE CName='博客园一班'   FOR xml raw
 这样查询得到的结果如下:
我们如果想看的更清楚的话只要单击一个就可以得到相应的Xml文件的形式了
这里应该就是我们想要的Xml文件的形式了,其实就是这么简单的,我们可以通过Ado的方式 把他查询得到UI直接使用就OK了,
我们可以看到我们得到的信息并不完整,没有学生信息,我们要吧使用一个连接的形式来完成看下面的Sql语句
SELECT ClassInfo.CID,ClassInfo.Cnumber,ClassInfo.CName,Students.SID,Students.SName
from ClassInfo  JOIN dbo.Students ON Students.CID=dbo.ClassInfo.CID 
ORDER BY&n


相关文档:

SQL SERVER中一些特别地方的特别解法

SQL code
/*----------------------------------------------------------------
-- Author :feixianxxx(poofly)
-- Date :2010-04-20 20:10:41
-- Version:
-- Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (Intel X86)
Mar 29 2009 10:27:29
Copyright (c) 1988-2008 Microsoft Co ......

SQL Server 2005新增的功能

1. 新的产品版本
除SQL Server 2005标准版和企业版之外,产品线中还加入了SQL Server 2005简化版(SQL Server 2005 Express)和工作组版(SQL Server 2005 Workgroup)两个新版本。
SQL Server 2005 Express——其作用是代替微软SQL Server桌面引擎(Microsoft SQL Server Desktop Engine,MSDE)。SQL Serve ......

SQL中的CASE使用方法

Case具有两种格式。简单Case函数和Case搜索函数。
--简单Case函数
CASE sex
         WHEN '1' THEN '男'
         WHEN '2' THEN '女'
ELSE '其他' END
--Case搜索函数
CASE WHEN sex = '1' THEN '男'
     ......

SQL Server 2005索引碎片整理SQL语句

/*******************************************************/
/*         功能:SQL Server 2005索引碎片整理            */
/*              逻辑碎 ......

SQL 中如何返回存储过程中的结果集

set @sql = 'select    *   from   OPENROWSET(''SQLOLEDB'',''SERVER='+@serverip+';uid=sa;pwd=sa;Database='+@databaseName+''',''SET   FMTONLY   OFF;set   nocount   on exec   procName '''''+@yqid+''''''' ) as   ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号