📄 6249.htm
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>MS SQL基础教程:XML文档与数据库表 - 编程入门网</title>
<meta name="keywords" content="MS SQL基础教程:XML文档与数据库表">
<meta name="description" content="MS SQL基础教程:XML文档与数据库表">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="/images/style.css" rel="stylesheet" type="text/css" />
<script src="/js1/head.js"></script>
</head>
<body leftmargin="0" topmargin="0" bgcolor="#efefef" oncopy=nocopy()>
<TABLE width="760" cellPadding="0" cellSpacing="0" bgcolor="#eff7fe" align="center">
<TR>
<TD><a href="/index.htm"><img src="/images/logo1.gif" width="150" height="60" border="0"></a></TD>
<TD width="470" align="right"><script src="/js1/top.js"></script></TD>
<TD width="125" align="center"><script src="/js1/topsy.js"></script></TD>
</TR>
</TABLE>
<table width="760" border="0" cellpadding="1" cellspacing="0" class="bklan" align="center">
<tr>
<td align="center" bgcolor="#eff7fe" height="24"> | <a href='/Programming/index.htm'>编程语言</a> | <a href='/webkf/index.htm'>web开发</a> | <a href='/data/index.htm'>数据库</a> | <a href='/Network/index.htm'>网络技术</a> | <a href='/OS/index.htm'>操作系统</a> | <a href='/Servers/index.htm'>服务器</a> | <a href='/web/index.htm'>网页设计</a> | <a href='/Design/index.htm'>图形设计</a> | <a href='/Office/index.htm'>办公软件</a> | <a href='/soft/index.htm'>常用软件</a> | <a href='/shadu/index.htm'>杀毒频道</a> | <a href='/PC/index.htm'>学电脑</a> |</td>
</tr>
</table>
<table cellspacing="0" cellpadding="0" width="760" align="center" bgcolor="#ffffff" border="0">
<tr>
<td align="center"><script src="/js1/content1.js"></script></td>
</tr>
</table>
<table width="760" border="0" cellpadding="0" cellspacing="0" align="center">
<tr>
<td height="25" background="/templets/img/31bg3.gif" align="left" class="guidet"> → 当前位置:<a href='http://www.bianceng.cn/'>首页</a>→<a href='/data/index.htm'>数据库</a>→<a href='/data/SQLServer/index.htm'>SQL Server</a>→<a href='/data/SQLServer/jc/index.htm'>SQL Server教程</a>→正文</td>
</tr>
</table>
<table width="760" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td valign="top" class="guidet" width="595"><table width="100%" border="0" cellpadding="0" cellspacing="0" class="ct">
<tr>
<td align="center" valign="middle" class="til"><h3> MS SQL基础教程:XML文档与数据库表 </h3>
发布时间:2007-12-25 来源:网络/责编:编程入门 作者:佚名<br />
<script src="/js1/468.js"></script>
</td>
</tr>
<tr>
<td style="font-size:14px" align="left" class="til"><table border="0" align="right" cellpadding="0" cellspacing="0">
<tr>
<td align="center"><script src="/js1/300.js"></script></td>
</tr>
</table><p> 包括SQL Server 7.0 在内的SQL Server 系列版本并不提供XML。 支持开发人员以前不得不使用一个XML 分析器,如微软的XML 分析器(MSXML),而且它们必须编写自己的代码来处理细节:把不同的元素从XML 文档中提取出来并按需要把它们放进关系表的不同部分,然后访问关系表;或者编写代码将数据从数据库表中提取出来,再以正确的格式放回到XML 文档中。当我们在享受XML 所带来的好处时,我们常会发现自己在开发Web 应用程序时不得不应付这样的工作,而且在开发不同的Web 应用程序时仍然不得不重新编写代码。由此可见,开发人员真正需要的是一种在数据库中处理XML 的一般方法而这正是使用SQL Server 2000 时所能作到的,即在关系式数据表中存储XML 文档,从关系式数据中产生XML 文档。</p>
<p> 20.3.1 从关系式数据中产生XML 文档</p>
<p> 在SQL Server 2000 中通过使用SELECT 语句可以把查询结果存储为XML 文档而不是通常意义上的结果集,这样通过比原来少得多的编码就可以使Web 应用或其它应用直接使用XML 文档,从而方便企业与供应商之间的业务交流。</p>
<p> 将关系数据库的查询结果显示成XML 文档是通过FOR XML 语句来完成的。在使用FOR XML 语句的同时可以指定XML 的MODE (RAW、 AUTO、 EXPLICIT)以及XMLDATA 的模式(Schema)。 FOR XML 语句的语法规则为:</p>
<p> FOR XML mode [, XMLDATA] [, ELEMENTS][, BINARY BASE64]</p>
<p> 各参数的含义说明如下: mode</p>
<p> 表示返回结果集的XML mode, 共有三种取值,即RAW、 AUTO、 EXPLICIT。 XMLDATA</p>
<p> 表示将返回XMLDATA 模式。 ELEMENTS</p>
<p> 使用该选项时,表示将相应的关系表列作为XML 文档的子元素;否则其将与 XML 属性相匹配。仅当选用AUTO 时才可以使用该选项。 BINARY BASE64</p>
<p> 表示由查询返回的二进制数据以64 位编码的形式显示。 1 RAW 模式</p>
<p> 使用RAW 模式时查询结果集中的每一行都作为XML 文档的一个元素,非空列将作为相应的XML 文档元素的属性,其属性名与列名保持一致。</p>
<p> <img onclick="get_larger(this)" alt="" src="/upimg/071226/11b61324520954U.gif" /></p>
<p> 2 AUTO 模式</p>
<p> 使用AUTO 模式时查询结果集作为嵌套XML 元素。FROM 从句中的每一个表名作为XML 元素,在SELECT 语句中的各列作为XML 文档元素的属性。如果使用ELEMENTS 选项,则SELECT 语句中的各列作为XML 文档元素的子元素。</p>
<p> <img onclick="get_larger(this)" alt="" src="/upimg/071226/11b61324601010F39.gif" /></p>
<p> 3 EXPLICIT 模式</p>
<p> 在使用EXPLICIT 模式时,查询复写器控制由查询返回的结果集所形成的XML 文档的格式,元素的嵌套层次。以及属性同时必须保证XML 文档是良构(wellformed)的,并且具有有效的XML-DATA 模式。</p>
<p> <img onclick="get_larger(this)" alt="" src="/upimg/071226/11b61324D10114038.gif" /></p>
<p> 20.3.2 在关系数据库表中存储XML 文档</p>
<p> 在实施B2C (商业到客户)电子商务模式的企业中,客户经常直接在Web 页面订购产品支付现金,这些数据一般并不直接存入数据库中而是基于安全性以及在统一标准下数据转换具有高效性的考虑而将其存储在XML 文档中,然后再存入数据库中。这就需要从XML 文档中提取数据信息并将其存入关系数据库中。在SQL Server 2000 中OPENXML 语句提供了在关系数据库表中存储XML 文档的功能。</p>
<p> OPENXML 是一个行集提供者,与表和视图极为相似。通过OPENXML 提取XML 文档数据与读取关系型行结果集数据一样简单、高效。在使用OPENXML 前必须首先调用sp_xml_preparedocument 系统过程,其主要作用是解析XML 文档,并返回该文档的文件指针。然后该文件指针传给OPENXML, 其根据传来的参数将XML 文档转换成行结果集。最后通过调用sp_xml_removedocument 系统过程来释放由 XML 文档所占用的内存空间。其具体执行过程请参看图20-2。</p>
<p> <img onclick="get_larger(this)" alt="" src="/upimg/071226/11b61324K2012HQ.gif" /></p>
<p> <img onclick="get_larger(this)" alt="" src="/upimg/071226/11b61324N301355F.gif" /></p>
<p> <img onclick="get_larger(this)" alt="" src="/upimg/071226/11b61324X40149494.gif" /></p>
<p> <a href="/data/SQLServer/jc/200712/6352.htm">查看全套"MS SQL入门基础教程"</a></p><center><br /><script src="/js1/4682.js"></script></center>
<p>上一篇:<a href='/data/SQLServer/jc/200712/6248.htm'>MS SQL基础教程:XML技术</a> 下一篇:<a href='/data/SQLServer/jc/200712/6250.htm'>MS SQL基础教程:基于HTTP的数据访问</a> </p></td>
</tr>
<tr>
<td align="left" style="font-size:14px;" height="25"><IMG src="/images/t0.gif" width="12" height="12" align=absMiddle><strong>相关文章</strong><br /><table width='100%' border='0' cellspacing='0' cellpadding='0'>
<tr>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6248.htm">MS SQL基础教程:XML技术</a><br/>
</td>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6250.htm">MS SQL基础教程:基于HTTP的数据访问</a><br/>
</td>
</tr>
<tr>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6247.htm">MS SQL基础教程:SQL Server2000与Internet:</a><br/>
</td>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6251.htm">MS SQL基础教程:Web Assistant Wizard</a><br/>
</td>
</tr>
<tr>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6246.htm">MS SQL基础教程:SQL Query Analyzer</a><br/>
</td>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6252.htm">SQL Server死锁的分析</a><br/>
</td>
</tr>
<tr>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6245.htm">MS SQL基础教程:使用SQL Server Profiler</a><br/>
</td>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6253.htm">SQL Server日志文件总结及充满处理方式</a><br/>
</td>
</tr>
<tr>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6244.htm">MS SQL基础教程:SQL Server的工具-SQL Mail</a><br/>
</td>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6254.htm">了解MS SQL Server 2000视图</a><br/>
</td>
</tr>
<tr>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6243.htm">MS SQL基础教程:警报</a><br/>
</td>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6255.htm">如何使用SQL Server 2000中的XML功能</a><br/>
</td>
</tr>
<tr>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6242.htm">MS SQL基础教程:DTS导入、导出向导</a><br/>
</td>
<td width='50%'>
·<a href="/data/SQLServer/jc/200712/6256.htm">SQL Server MFC DAO类和MFC ODBC类</a><br/>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
<td width="165" valign="top" class="guideb"><script src="/js1/1601.js"></script><table width="100%" border="0" cellpadding="0" cellspacing="0" valign="top">
<tr>
<td height="25" align="center" background="/templets/img/31bg3.gif"><strong>阅读排行</strong></td>
</tr>
<tr>
<td>·<a href="/data/SQLServer/jc/200712/6352.htm">MS SQL Server入门教程</a><br/>
·<a href="/data/SQLServer/jc/200807/10974.htm">MS SQL基础教程:存储过程</a><br/>
·<a href="/data/SQLServer/jc/200705/1189.htm">sql语言教程</a><br/>
·<a href="/data/SQLServer/jc/200807/10973.htm">MS SQL基础教程:创建存储</a><br/>
·<a href="/data/SQLServer/jc/200705/1182.htm">sql字符串函数</a><br/>
·<a href="/data/SQLServer/jc/200712/6301.htm">MS SQL基础教程:SQL Serve</a><br/>
·<a href="/data/SQLServer/jc/200712/6302.htm">MS SQL基础教程:SQL Serve</a><br/>
·<a href="/data/SQLServer/jc/200712/6314.htm">MS SQL基础教程:数据类型</a><br/>
·<a href="/data/SQLServer/jc/200705/1188.htm">Sql语言基础</a><br/>
·<a href="/data/SQLServer/jc/200712/6311.htm">MS SQL基础教程:Transact-</a><br/>
·<a href="/data/SQLServer/jc/200712/6312.htm">MS SQL基础教程:SQL变量</a><br/>
·<a href="/data/SQLServer/jc/200705/1184.htm">sql基本语句</a><br/>
·<a href="/data/SQLServer/jc/200807/10972.htm">MS SQL基础教程:管理存储</a><br/>
·<a href="/data/SQLServer/jc/200712/6306.htm">MS SQL基础教程:数据库基</a><br/>
·<a href="/data/SQLServer/jc/200705/1178.htm">sql数据表</a><br/>
</td>
</tr>
<tr>
<td><script src="/js1/1602.js"></script></td>
</tr>
<tr>
<td height="25" align="center" background="/templets/img/31bg3.gif"><strong>最新文章</strong></td>
</tr>
<tr>
<td><script src="/plus/js/0.js" language="javascript"></script></td>
</tr>
</table></td>
</tr>
</table>
<table cellspacing="0" cellpadding="0" width="760" align="center" bgcolor="#ffffff" border="0">
<tr>
<td align="center"><script src="/js1/content2.js"></script></td>
</tr>
</table>
<table width="760" border="0" cellspacing="0" cellpadding="0" align="center">
<tr height="26">
<td bgcolor="#e1f0fd" width="48"></td>
<td bgcolor="#6ab3f4" width="35"></td>
<td bgcolor="#0a518f" colspan="2" width="4"></td>
<td bgcolor="#c0c0c0" width="530" align="center"><a title="将本站设为你的首页" onclick="this.style.behavior='url(#default#homepage)';this.sethomepage('http://www.bianceng.cn');return false;" href="http://www.bianceng.cn/">设为首页</a> | <a class="navmenu"
title="将本站加入到你的收藏夹"
href="javascript:window.external.AddFavorite(location.href,document.title)">加入收藏</a> | <a href="/about/about.htm">关于本站</a> | <a href="/plus/flink.php">友情链接</a> | <a href="/about/banquan.htm">版权声明</a> | <a href="/plus/sitemap.html">网站地图</a> | <a href="/plus/rssmap.html">RSS订阅</a></td>
<td bgcolor="#0a518f" colspan="2" width="4"></td>
<td bgcolor="#6ab3f4" width="32"></td>
<td bgcolor="#e1f0fd" width="47"></td>
</tr>
<tr height="26">
<td colspan="9" bgcolor="#FFFFFF" align="center">编程入门网 版权所有,bianceng.cn,All Rights Reserved. <script src="/js/tongji.js"></script> 阅读次数:<script src="/plus/count.php?aid=6249&mid=0" language="javascript"></script></td>
</tr>
</table>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -