sqlserver2000xml之七种兵器

sqlserver2000xml之七种兵器

ID:22372295

大小:70.00 KB

页数:10页

时间:2018-10-28

sqlserver2000xml之七种兵器_第1页
sqlserver2000xml之七种兵器_第2页
sqlserver2000xml之七种兵器_第3页
sqlserver2000xml之七种兵器_第4页
sqlserver2000xml之七种兵器_第5页
资源描述:

《sqlserver2000xml之七种兵器》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、SQLServer2000XML之七种兵器>>教育资源库  兵器之一:FORXML  在SQLServer2000中,标准的T-SQLSELECT语句包括FORXML子句,它以XML文档形式返回一个查询结果。新的FORXML子句有三种模式RAL文档格式提供附加标准的控制。  下面首先介绍FORXML的使用方法。  为了从SQLServer提取XML格式的数据,T-SQL中加入了一个FORXML命令。在查询命令中使用FORXML命令使得查询结果以XML格式出现。FORXML命令有三种模式:RASDN说明。如果

2、我们依次指定该SQL命令的模式为三种允许的模式之一,就可以得到各种模式所支持的不同XML输出。  【图1】  SELECTstore.stor_idasId,stor_nameasName,  sale.ord_numasOrderNo,sale.qtyasQty  FROMstoresstoreinnerjoin  salessaleonstore.stor_id=sale.stor_id  ORDERBYstor_name  FORXML<模式>  该查询命令所生成的结果包含所有销售记录及其对应的商店,

3、结果以商店名称的字母升序排列。查询的最后加上了FORXML命令以及具体的模式,比如FORXMLRAL文档应具有如下结构:  <Stores>  <StoreId=single;single;Name=single;single;>  </SaleOrderNo=single;single;Qty=single;single;>  </Store>  </Stores>  下面我们来看看具体的处理方法。  RAL文档的一个片断。    查询结果集中每一个记录包含唯一的元素<roeas[store!1!Name

4、],NULLas[sale!2!OrderNo],NULLas[sale!2!Qty]FROMstoressUNIONALL--销售数据SELECT2,1,s.stor_id,s.stor_name,sa.ord_num,sa.qtyFROMstoress,salessaLEXPLICIT  这个查询初看起来有点复杂,其实它只是把不同的数据集(即这里的Store和Sale)分解到了独立的SELECT语句里,然后再用UNIONALL操作符连结成一个查询。  我们之所以要把查询写成上面的形式,是为了让查询结果不

5、仅包含XML文档所描述的数据,而且还包含描述XML文档结构的元数据。上述查询所生成的表称为Universal表,sqlxml.dll生成XML文档时需要这种格式。Universal表对于编写代码的人来说是透明的,但了解这个表还是很有意义的,它将有助于代码的开发和调试。下面是Universal表的一个例子:TagParentstore!1!idstore!1!namesale!2!ordernosale!2!qty1NULL7066Barnumsingle;sNULLNULL217066Barnumsingl

6、e;sA29765050217066Barnumsingle;sQA74423751NULL8042BookbeatNULLNULL218042Bookbeat423LL92215  Universal表和EXPLICIT模式查询的元数据部分都以红色表示,黑色表示数据。比较查询和表就可以找出sqlxml.dll生成XML文档所需要的元素。我们来仔细地分析一下它们描述的是什么。  Tag和Parent列是XML文档层次结构方面的信息,我们可以认为图2中的每个SELECT语句代表了一个XML节点,而Tag和Pa

7、rent列让我们指定节点在文档层次结构中的位置。如果在第二个SELECT语句中指定Tag为2、指定Parent为1,就表示为这些数据加上了一个值为2的标签,而这些数据的父亲是那些标签为1的数据(即第一个SELECT语句)。这就使得我们能够构造出<Store>和<Sale>之间的父-子关系,而且正如你可能猜想到的,它使得我们可以生成任意合法的XML文档结构。注意第一个SELECT命令的parent列设置成了NULL,这表示<Store>元素处于最顶层的位置。  以黑色表示的数据将成为节点的属性或元素,例如,S

8、tore_ID就通过列名提供了这方面的信息。列名字中的!是分隔符,总共可分成四项(四个参数),其中第四个参数是可选的。这些参数描述的是:  第一个参数描述该列所属元素的名字,在这里是<Store>元素。  第二个是标签编号,它指定了该列信息在XML树形结构中所处位置。  第三个参数指定XML文档内的属性或元素名字。在这里名字指定为id。  数据列默认被创建为参数2所指定节点的属性,即id将成为<Store>节点的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。