国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

SQL Server 2008中有關(guān)XML的新功能

2024-08-31 00:46:01
字體:
供稿:網(wǎng)友
1 導(dǎo)言

Microsoft 在Microsoft SQL Server 2000中推出了與XML相關(guān)的功能以及Transact-SQL 關(guān)鍵字FOR XML和OPENXML ,這使得開發(fā)人員可以編寫Transact-SQL代碼來獲取XML流形式的查詢結(jié)果,并將一個(gè)XML文檔分割成一個(gè)rowset。SQL Server 2005顯著的擴(kuò)展了這些XML功能,推出了一個(gè)支持XSD schema驗(yàn)證、基于XQuery的操作和XML索引的本地的xml 數(shù)據(jù)類型。SQL Server 2008建立在之前版本的XML功能基礎(chǔ)之上,做了改進(jìn)來迎接客戶在存儲(chǔ)和操縱數(shù)據(jù)庫中的XML數(shù)據(jù)時(shí)所面臨的挑戰(zhàn)。

2 SQL Server XML 功能的發(fā)展歷程

SQL Server的XML功能隨著從SQL Server2000版本以來的每一個(gè)版本而不斷發(fā)展。在我們檢查SQL Server 2008中的改進(jìn)之前,通過之前的版本來總結(jié)XML功能的發(fā)展歷程可能會(huì)比較有用。

2.1 SQL Server 2000中的XML功能

在SQL Server 2000中,Microsoft 推出了Transact-SQL 關(guān)鍵字FOR XML和OPENXML。FOR XML 是對(duì)SELECT語句的擴(kuò)展,它返回如下面的示例所示的XML流式的查詢結(jié)果。

  SELECTProductID,ProductName
  FROMProductsProduct
  FORXMLAUTO

這個(gè)查詢返回一個(gè)如下面示例所示的XML片斷:  

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

OPENXML 功能執(zhí)行與FOR XML 條件子句相反的功能,它創(chuàng)建一個(gè)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 存儲(chǔ)過程來創(chuàng)建XML文檔的節(jié)點(diǎn)樹的一個(gè)內(nèi)存展示的用法。這個(gè)Transact-SQL 代碼返回下面的rowset?!?/p>

OrderID ProductID Quantity
1011 1 2
1011 2 1

2.2 SQL Server 2005中的XML功能

在SQL Server 2005中,F(xiàn)OR XML 功能得到了增強(qiáng),它有了對(duì)根元素和元素名稱的新的選項(xiàng)、使用FOR XML 調(diào)用以便你可以建立復(fù)雜的層次關(guān)系的能力、和一個(gè)新的使得你可以定義將要使用XPath 語法來提取的XML結(jié)構(gòu)的PATH 模式,如下面的示例所示:

SELECT ProductID AS '@ProductID',
ProductName AS 'ProductName'
FROM Products
FOR XML PATH ('Product'), ROOT ('Products')

這個(gè)查詢返回下面的XML:

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

除了增強(qiáng)SQL Server 2000已推出的XML功能,SQL Server 2005增加了一個(gè)新的、本地的xml 數(shù)據(jù)類型,使得你可以為XML數(shù)據(jù)創(chuàng)建變量和列,如下面的示例所示:

CREATE XML SCHEMA COLLECTION ProductSchema AS
'<?xml version="1.0" encoding="UTF-16"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <!-- schema declarations go here -->
</xs:schema>'

共5頁上一頁12345下一頁
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 闻喜县| 鄂伦春自治旗| 伊金霍洛旗| 渑池县| 永定县| 五寨县| 阿图什市| 和静县| 岳西县| 清远市| 佳木斯市| 平泉县| 和林格尔县| 信宜市| 甘孜| 出国| 井陉县| 新巴尔虎左旗| 清丰县| 揭西县| 五莲县| 宾阳县| 民县| 延安市| 腾冲县| 太白县| 全椒县| 大邑县| 黄石市| 会宁县| 沅江市| 高阳县| 茂名市| 禄丰县| 且末县| 会泽县| 崇州市| 赤峰市| 芷江| 尼木县| 罗江县|