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

MSSQL
如何用SQL语句来判断已知表是否存在
剖析SQL Server 2005中的报告服务架构
使用Microsoft SQL Server 2000的XML查询
让SQL Server为工作负载高峰提前准备
用Sql server一次插入多条数据
SQL SERVER2000深入学习之常见错误
关于SQL Server数据库的若干注意事项
sql server 2005中的表分区
SQL Server实用经验与技巧大汇集
限制SQL Server只能让指定的机器连接
SQL Server数据汇总完全解析
SQL查询语句使用精华
优化SQL Server服务器内存配置的策略
Sql server进行优化50招特效
用SQL语句实现异构数据库之间的导数据导入/出
SQL Server Compact Edition RC1 发布!
SQL Server死锁的分析
加快SQL Server备份和重新存储的速度
使用TSQL操作面试SQL Server开发人员
SQL 外链接操作小结 inner join left join right join

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 64 ::
收藏到网摘: 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语句,你就可