SQL2008数据库中有关XML的新功能(1)_SQL SERVER数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

SQL数据库 2008 中有关XML的新功能(1)

作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0

本篇关键词:SQL2008数据库
黑客防线网安网讯:  1 导言  Microsoft 在Microsoft SQL Server 2000中推出了与XML相关的功能以及Transact-SQL 关键字FOR XML和OPENXML ,这使得开发人员可以编写Transact-SQL代码来获取XML流形式的查询结...

  1 导言

  Microsoft 在Microsoft SQL Server 2000中推出了与XML相关的功能以及Transact-SQL 关键字FOR XML和OPENXML 这使得开发人员可以编写Transact-SQL代码来获取XML流形式的查询结果并将一个XML文档分割成一个rowsetSQL Server 2005显著的扩展了这些XML功能,推出了一个支持XSD schema验证、基于XQuery的操作和XML索引的本地的xml 数据类型SQL Server 2008建立在之前版本的XML功能基础之上,做了改进来迎接客户在存储和操纵数据库中的XML数据时所面临的挑战。

  2 SQL Server XML 功能的发展历程

  SQL Server的XML功能随着从SQL Server2000版本以来的每一个版本而不断发展。在我们检查SQL Server 2008中的改进之前,通过之前的版本来总结XML功能的发展历程可能会比较有用。

  2.1 SQL Server 2000中的XML功能

  在SQL Server 2000中,Microsoft 推出了Transact-SQL 关键字FOR XML和OPENXML。FOR XML 是对SELECT语句的扩展,它返回如下面的示例所示的XML流式的查询结果。

  SELECT ProductID, ProductName
  FROM Products Product
  FOR XML AUTO


  这个查询返回一个如下面示例所示的XML片断:  

<Product ProductID="1" ProductName="Widget"/>
<Product ProductID="2" ProductName="Sprocket"/>
  

  OPENXML 功能执行与FOR XML 条件子句相反的功能,它创建一个XML文档的rowset ,如下面的示例所示:

DECLARE @doc nvarchar(1000)
SET @doc = '<Order OrderID = "1011">
   <Item ProductID="1" Quantity="2"/>
   <Item ProductID="2" Quantity="1"/>
  </Order>'
DECLARE @xmlDoc integer
EXEC sp_xml_preparedocument @xmlDoc OUTPUT, @doc
SELECT * FROM
OPENXML (@xmlDoc, 'Order/Item', 1)
WITH
(OrderID integer '../@OrderID',
 ProductID integer,
 Quantity integer)
EXEC sp_xml_removedocument @xmlDoc


  注意用sp_xml_preparedocument和sp_xml_removedocument 存储过程来创建XML文档的节点树的一个内存展示的用法。这个Transact-SQL 代码返回下面的rowset。 

OrderID ProductID Quantity
1011 1 2
1011 2 1

 

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-10642-1.html
网站维护教程更新时间:2012-03-21 03:07:10  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer