当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 使SQL Server数据支持 XML

MSSQL
SQL语句技巧:按月统计数据
分页 SQLServer存储过程
SQL语句的基本语法
模糊查询
直接循环写入数据
删除重复记录
删除重复的记录,并保存第一条记录或保存最后一条记录
MSSQL数据库的定期自动备份计划。
一个比较实用的大数据量分页存储过程
数据库存储过程分页显示
ACCESS数据库的压缩,备份,还原,下载,删除的实现
sql编程的几个常识
SQL连接查询介绍
Sql Server基本函数
分页的存储过程
SQL Server全文索引服务
如何在SQLSERVER中快速有条件删除海量数据
整理一下SQLSERVER的排序规则
SQL Server各种日期计算方法(收藏)
全文检索技术 sql server

MSSQL 中的 使SQL Server数据支持 XML


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

学习如何用SQL Server的XML特征为你的数据库提供新的功能。

  如果你在IT业工作,那么你很可能听说过XML;但如果你的工作主要与SQL Server有关,那么你可能并没有直接运用过XML。XML已经是Web编程环境中的普遍的数据格式了,而且它也是.NET Framework中主要的底层技术之一。SQL Server以两种方式来支持XML:通过SQL Server本身的功能,以及通过发布称为SQLXML的额外的功能。SQLXML扩展了SQL Server,并提供了XML兼容性。在本月的专栏中,我将讲述SQL Server对XML的内置的支持,并讲述通过发布SQLXML而增加的一些功能(见 图1)。SQL Server支持XML就意味着,我们可以更有效地更新和读取数据了;我们不再需要将XML数据转换成数据库可以理解的另一种格式,或将XML数据从数据库转换成XML。而且,可供开发人员选择的方法也更多了,就是说,他们在访问数据方面更灵活了。

  对XML的宣传已经有很多了,所以重要的一点是要意识到它只是一门简单的技术。本质上,它是用来描述数据的一个标准的文件格式。(有关XML基础知识的更多的信息,请参阅工具条“XML 101”。)从发布SQL Server 2000的最初版本以来,对XML的支持就已经是SQL Server的一部分了。SQL Server不是通过提供一个方法保存XML文件来支持XML的,而是提供了一个到关系数据的接口,使你可以在表和其它数据库对象中读写XML数据。SQL Server所固有的XML功能包括:可以通过HTTP、模板查询、FOR XML子句和OPENXML()函数来访问SQL Server。接下来,我将讲述这些功能是如何运作的,以及它们可以如何使你的企业受益。

  

使SQLServer数据支持XML

  图1. 提供 XML支持

  要通过HTTP访问一个SQL Server数据库,你必须首先设置一个虚拟目录。这个虚拟目录在HTTP协议和一个特定的数据库之间提供了一个链接。设置虚拟目录时,我们需要用“Configure SQL XML Support In IIS”菜单条目,你可以在Window的Start菜单中的SQL Server菜单条目找到该项。通过该菜单条目,你就可以指定虚拟目录的名称、物理路径、服务器名称、数据库名称和注册信息。一旦你创建了一个虚拟目录,你就可以通过一个URL将查询发送到数据库了。如果你设置了一个叫做Northwind的虚拟目录,并在浏览器中输入了查询http://localhost/Northwind?sql=SELECT+*+FROM+Shippers+FOR+XML+AUTO,ELEMENTS+&root=Shippers,它就会返回类似于“XML 101”工具条中的Shippers例子中的XML数据。与运用ADO或其它任何技术相比,HTTP查询会让我们更容易地来访问网站或Web应用程序的数据。 对于一个简单的查询语句来说,HTTP查询会很好,但对于一个更复杂的查询来说,这种格式就会变得难以理解并很难管理了。这种方法也不安全,因为查询源代码是暴露给用户的。另外一种可选方法是在HTTP上调用一个模板查询。一个模板查询就是一个包含SQL查询的XML文件。模板作为文件保存在服务器上。因此,如果你在一个叫做GetShippers.xml的模板中封装了Shippers SELECT查询,那么URL查询的形式就会是:http://localhost/Northwind/templates/GetShippers.xml。模板也可以带有参数,当你的模板调用一个存储过程时,该功能会很有用。在URL查询和模板查询中,如果你想从查询返回一个HTML页面,那么你可以指定一个XSLT样式表,将它用于XML。模板查询是读取数据的一个更安全的方法,它可以被缓存以得到更好的性能。