欢迎来到天天文库
浏览记录
ID:20620285
大小:84.00 KB
页数:10页
时间:2018-10-14
《如何使用sqlserver2000中的xml功能》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、如何使用SQLServer2000中的XML功能>>教育资源库 在本文中我们将讨论如何通过T-SQL的FORXML子句从SQLServer返回XML。本文将通过几个例子来介绍返回XML数据和架构信息的几种不同方式,还将介绍将XML转换成更令人满意的格式的方法。然后讨论OPENXML,以及将XML文档联接到数据库表和使用L的方法。 SQLServer2000提供了一些XML功能,用于通过XML将关系行集合转换成分层的XML文档、读取XML文档和批量加载数据。例如,可以将XML文档传递到存储过程,将XML联接到某些表并返回一个行集合,甚至可以在数据库中修改数据。XML在当今企业
2、系统中不断扩展的功能促进了OPENXML函数和FORXML语句的引入。其中某些功能不但支持XML,而且还提高批量加载数据时的性能。 在本文中我们将讨论如何通过T-SQL的FORXML子句从SQLServer返回XML。本文将通过几个例子来介绍返回XML数据和架构信息的几种不同方式,还将介绍将XML转换成更令人满意的格式的方法。然后讨论OPENXML,以及将XML文档联接到数据库表和使用L的方法。这些例子的SQL,以及执行其中某些例子并将它们导出为文本文件的示例ASP.项目,都可从MSDNMagazineL将记录插入和更新到数据库的代码。 返回XML 当用于SELECT语句
3、中时,FORXML子句指示SQLServer将数据作为XML返回,这与标准行集合相反。可以指定返回模式:RAL的不同转换方式(图1给出了各种模式的概述)。 图1FORXML模式概述模式说明RAL元素。<roployees表,它会在<roployeeID,FirstName,LastNameFROMEmployeesLRAEmployeesLAUTO<EmployeesEmployeeID=1FirstName=NancyLastName=Davolio/><EmployeesEmployeeID=9FirstName=AnneLastName=D
4、odsers.CustomerID,panyName,OrderID,CONVERT(VARCHAR(10),OrderDate,101)ASOrderDateFROM CustomersINNERJOINOrdersONCustomers.CustomerID=Orders.CustomerIDORDERBYCustomers.CustomerID 本例将检索一种一对多父子关系。若执行该SQL语句,则将返回一系列客户及其相应定单。若附带FORXMLRAL结果将包含一个表示所返回的每一行的单<roerID为ALFKI时FORXMLRAL数据 请注意,这些数据不以父子
5、层次结构显示。若想让数据显示为包含一系列相关<Orders>元素的一系列<Customers>元素,则可使用FORXMLAUTO子句(父子嵌套方法取决于成组聚集的父行)。CustomerID为ALFKI时的XML结果如下:<CustomersCustomerID=ALFKIpanyName=AlfredsFutterkiste><OrdersOrderID=10643OrderDate=08/25/1997/><OrdersOrderID=10692OrderDate=10/03/1997/><OrdersOrd
6、erID=10702OrderDate=10/13/1997/><OrdersOrderID=10835OrderDate=01/15/1998/><OrdersOrderID=10952OrderDate=03/16/1998/><OrdersOrderID=11011OrderDate=04/09/1998/></Customers> 该XML的可读性大大提高,因为它使用表名来作为元素名。它所包含的数据也比较少,因为它不重复每个定单元素的CustomerID和panyName属性,而FORXMLRAL子句中指定ELEM
7、ENTS选项,所有列值都将成为XML中的元素。有时百闻不如一见,因此本文在图3中给出了当ELEMENTS条件适用时前面查询的输出。(为了简便起见,给出的XML示例仅包含CustomerIDALFKI的XML。这些查询所生成的实际XML会包含所有客户及其定单的XML。)使用ELEMENTS选项的查询如下:SELECT Customers.CustomerID,panyName,OrderID,CONVERT(VARCHAR(10),OrderDate,101)ASOrderDateFROM
此文档下载收益归作者所有