当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 用SQL 2000创建用户化XML流

MSSQL
MS SQL Server 2000系统数据类型
SQL Server几个容易出错的数据类型
SQL Server 数据库中关于死锁的分析
站长必备的sql查询语言基础知识
经验分享交流:常用SQL语句技法
SQL SERVER 2000 数据库备份与还原
解决SQL SERVER 2005无法远程连接的问题
SQL Server 安装参考意见
在sqlserver2005中安装sql server 2000的示例数据库northwind
SQL Server 2000 数据库分离与附加
高级自定义查询、分页、多表联合存储过程
SQL Server数据库下教你如何做导库SQL
常用的 MSSQL Server 数据修复命令
SQL存储过程初探
SQL Server存储过程编写经验和优化
卸载SQL Server2000后不能再次安装的问题解决方法
教你安装SQL Server 2005示例数据库
MySQL 的外键与参照完整性: Part 1
SQL Server安装:"安装文件配置服务器失败"的解决方法
SQL Server 数据库文件存放在何处

MSSQL 中的 用SQL 2000创建用户化XML流


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 74 ::
收藏到网摘: n/a

 

你可能想在程序当中使用XML,但是仅仅用一个简单的查询是不能从Microsoft SQL Server 2000中获取其信息的。
 
让我们假设你想将一个HTML 表格连接到一个XML数据岛,但是你十分确定要将若干表格套入母表中十分复杂。母表中的每一个表格一定是XML数据结构中父节点下的一组节点。电话号码目录就是一个很好的例子。

<TABLE dataSrc="#xmlPhoneData">
<TR>
    <TD>
        <SPAN dataFld="fname"></SPAN>&nbsp;
        <SPAN dataFld="lname"></SPAN>
    </TD>
</TR>
<TR>
    <TD>
        <TABLE dataSrc="#xmlPhoneData" dataFld="phone">
            <TR>
                <TD><SPAN dataFld="phone_type"></SPAN>:</TD>
                <TD><SPAN dataFld="phone_no"></SPAN></TD>
            </TR>
        </TABLE>
    </TD>
</TR>
<TR>
    <TD>
        <TABLE dataSrc="#xmlPhoneData" dataFld="other_info">
            <TR>
                <TD><SPAN dataFld="info_type"></SPAN>:</TD>
                <TD><SPAN dataFld="info_data">/SPAN></TD>
            </TR>
        </TABLE>
    </TD>
</TR>
</TABLE>

 

TABLE代表一系列信息,包括目录中某个人的名字、所有的电话号码和那个人的其他信息(譬如说,地址等)。

 

这个XML的模型如下:

<root>
      <data>
          <lname/>
          <fname/>
          <phone>
              <phone_type/>
              <phone_no/>
          </phone>
          <other_info>
              <info_type/>
              <info_data/>
          </other_info>
      </data>
  </root>

 

尽管创建这个XML模型不是不可能的,我们仍然在本文中使用这个简单的例子。

首先,我们将提供一些背景知识使其更全面。数据来源于三个方面:包含员工的名(fname)和姓(lname)的职工表;包含员工电话类型(phone_type)和电话号码(phone_no)的电话表;包含员工其他信息(如地址等)的其他信息表(other_info)。

 

如果你想将信息从这些表中抓取到一个记录集中,SQL查询可以如下:

SELECT employee.lname, employee.fname, phone.phone_type, phone.phone_no,
other_info.info_type, other_info.info_data FROM employee LEFT JOIN phone ON
 phone.employee_id = employee.employee_id LEFT JOIN other_info ON
 other_info.employee_id = employee.employee_id

 

当你需要SQL 2000中有XML的时候,你通常可以在查询字符串的末尾输入一个FOR XML AUTO, ELEMENTS语句,你就可