日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

SQL Server 2008中有關(guān)XML的新功能(3)_Mssql數(shù)據(jù)庫(kù)教程

編輯Tag賺U幣
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

推薦:在SQL Server實(shí)例之間傳輸?shù)卿浐兔艽a
概要 在將數(shù)據(jù)庫(kù)移動(dòng)到新服務(wù)器后,用戶可能無(wú)法登錄到新服務(wù)器。相反,他們會(huì)收到下面的錯(cuò)誤消息: Msg 18456, Level 16, State 1 Login failed for user '%ls'. 您必須將登錄和密碼傳

  

2.3 SQL Server 2008中的XML功能

XML功能是在SQL Server 2000和SQL Server 2005中推出的,在SQL Server 2008中得到了增強(qiáng)。在SQL Server 2008中主要的與XML相關(guān)的改進(jìn)包括:

· 改進(jìn)了schema 驗(yàn)證能力

· 增強(qiáng)了對(duì)XQuery 的支持

· 增強(qiáng)了XML數(shù)據(jù)操縱語(yǔ)言(DML)的插入功能

本篇白皮書(shū)的其余部分描述了這些增強(qiáng)之處,并介紹了你怎樣在SQL Server 2008中使用它們來(lái)實(shí)現(xiàn)更好的XML解決方案。

3 增強(qiáng)了XML Schema驗(yàn)證功能

你可以使用一個(gè)或多個(gè)XSD schema執(zhí)行遵從性檢查,以此來(lái)驗(yàn)證XML數(shù)據(jù)。一個(gè)schema為某個(gè)特定的XML數(shù)據(jù)結(jié)構(gòu)定義被允許的XML元素和屬性,并通常用于確保XML文檔按正確的結(jié)構(gòu)包含進(jìn)了所要求的所有數(shù)據(jù)元素。

SQL Server 2005推出了通過(guò)使用XML schema 集合來(lái)進(jìn)行XML數(shù)據(jù)驗(yàn)證。一般的方法是使用CREATE XML SCHEMA COLLECTION語(yǔ)句創(chuàng)建包含了針對(duì)你的XML數(shù)據(jù)的schema 規(guī)則的schema集合,然后當(dāng)你要定義一個(gè)必須符合這個(gè)schema 集合中的schema 規(guī)則的xml字段或變量時(shí)參照這個(gè)schema集合名稱。然后SQL Server會(huì)按照這個(gè)schema集合中的schema規(guī)則來(lái)驗(yàn)證插入或更新進(jìn)這個(gè)字段或變量的所有數(shù)據(jù)。

在SQL Server 2005中的XML Schema支持實(shí)現(xiàn)了一個(gè)廣泛的純XML Schema規(guī)格的子集,并涵蓋了最常見(jiàn)的XML驗(yàn)證場(chǎng)景。SQL Server 2008擴(kuò)展了這個(gè)支持,使得它包含下面新增加的由客戶確定的schema 驗(yàn)證要求:

· 對(duì)lax 驗(yàn)證的支持

· 對(duì)dateTime、time和date 驗(yàn)證的完全支持,包括時(shí)區(qū)信息的保存。

· 改進(jìn)了對(duì)union和list類型的支持

3.1 支持Lax驗(yàn)證

XML Schema通過(guò)使用any、anyAttribute和anyType聲明來(lái)支持XML文檔中的通配符。例如,看看下面的XML schema 聲明:

<xs:complexType name="Order" mixed="true">
 <xs:sequence>
  <xs:element name="CustomerName"/>
  <xs:element name="OrderTotal"/>
  <xs:any namespace="##other" processContents="skip"
minOccurs="0" maxOccurs="unbounded"/>
 </xs:sequence>
</xs:complexType>

這個(gè)schema 聲明定義了一個(gè)叫做Order 的XML元素,它必須包含叫做CustomerName和OrderTotal的子元素。此外,這個(gè)元素可以包含Order類型所屬的命名空間之外的其它命名空間的無(wú)限制數(shù)目的其它元素。下面的XML顯示了一個(gè)包含由這個(gè)schema 聲明所定義的Order 元素的一個(gè)實(shí)例的XML文檔。注意這個(gè)order 還包含了一個(gè)shp:Delivery 元素,它沒(méi)有在schema中明確定義。

<Invoice xmlns="http://adventure-works.com/order"
  xmlns:shp="http://adventure-works.com/shipping">
  <Order>
  <CustomerName>Graeme Malcolm</CustomerName>
  <OrderTotal>299.99</OrderTotal>
  <shp:Delivery>Express</shp:Delivery>
  </Order>
</Invoice>

對(duì)通配符的驗(yàn)證取決于在schema定義中的通配符的processContents 屬性。在SQL Server 2005中,schema可以使用用于any和anyAttribute聲明的skip和strict 的processContents值。在前面的示例中,這個(gè)通配符元素的processContents屬性被設(shè)置為skip,所以不會(huì)對(duì)這個(gè)元素的內(nèi)容進(jìn)行驗(yàn)證。即使這個(gè)schema集合包含一個(gè)對(duì)shp:Delivery元素的聲明(例如,定義一組有效的發(fā)送方法對(duì)Order元素中的通配符),這個(gè)元素也不會(huì)被驗(yàn)證,除非在Order元素中對(duì)通配符的聲明將它的processContents屬性設(shè)置為strict。

SQL Server 2008增加了對(duì)第三方驗(yàn)證的支持。通過(guò)將一個(gè)通配符的processContents屬性設(shè)置為lax ,你可以對(duì)具有相應(yīng)的schema 聲明的任何元素進(jìn)行驗(yàn)證,但忽略沒(méi)有在schema 中定義的所有元素。繼續(xù)前面的示例,如果你將schema中對(duì)通配符元素的聲明中的processContents屬性設(shè)置為lax 并增加一個(gè)對(duì)shp:Delivery元素的聲明,那么在XML文檔中的shp:Delivery 元素會(huì)被進(jìn)行驗(yàn)證。然而,如果不是shp:Delivery 元素,而是該文檔包含了一個(gè)沒(méi)有在schema中聲明的元素,那么這個(gè)元素會(huì)被忽略掉。

此外,XML Schema 規(guī)格定義anyType聲明具有對(duì)它的內(nèi)容模型的lax處理方式。SQL Server 2005不支持lax處理,所以會(huì)嚴(yán)格的對(duì)內(nèi)容進(jìn)行驗(yàn)證。SQL Server 2008支持anyType 內(nèi)容的lax處理,因此內(nèi)容會(huì)被正確的進(jìn)行驗(yàn)證。

3.2 對(duì) xs:dateTime 的完全支持

你可以在一個(gè)XML schema 中使用dateTime數(shù)據(jù)類型來(lái)定義日期和時(shí)間數(shù)據(jù)。日期和時(shí)間數(shù)據(jù)以2007-08-01T09:30:00:000Z的格式來(lái)顯示,這表示的是通用協(xié)調(diào)時(shí)(UTC)2007年8月1日早上9:30,這用Z表示。其它的時(shí)區(qū)顯示的時(shí)間與通用協(xié)調(diào)時(shí)間不同,因此例如你能使用太平洋標(biāo)準(zhǔn)時(shí)間2007-12-25T06:00:00:000-8:00來(lái)顯示2007年12月25日的早上6:00(它比UTC時(shí)間滯后8小時(shí))。

XML Schema 規(guī)格定義了可選擇的dateTime、date和time 數(shù)據(jù)類型的時(shí)區(qū)組件。然而,在SQL Server 2005中你必須提供一個(gè)用于dateTime、date和time數(shù)據(jù)的時(shí)區(qū)。此外,SQL Server 2005不保存你的dateTime或time數(shù)據(jù)的時(shí)區(qū)信息,但是會(huì)將它規(guī)格化為UTC時(shí)間(所以例如,如果你的XML有個(gè)2007-12-25T06:00:00:000-8:00的值,SQL Server 2005會(huì)將它規(guī)格化為2007-12-25T14:00:00:000Z。)在SQL Server 2008中沒(méi)有這些限制,所以當(dāng)你存儲(chǔ)dateTime、date或time數(shù)據(jù)時(shí)你可以省略時(shí)區(qū)信息,并且你提供的任何時(shí)區(qū)信息都會(huì)被保存下來(lái)。

分享:也談如何縮小SQL SERVER日志文件
前幾天也碰到日志文件過(guò)大的問(wèn)題,數(shù)據(jù)庫(kù)實(shí)際大小為600M, 日志文件實(shí)際大小為33M, 但日志文件占用空間為2.8G! 試了多種方式,SHIRNK DATABASE, TRUNCATE LOG FILE, 都沒(méi)辦法將文件縮小。無(wú)論

來(lái)源:模板無(wú)憂//所屬分類:Mssql數(shù)據(jù)庫(kù)教程/更新時(shí)間:2008-08-22
相關(guān)Mssql數(shù)據(jù)庫(kù)教程