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

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

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

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

3.3 Union和List類型

你可以使用XML schema 將你的XML數(shù)據(jù)的數(shù)據(jù)類型定義為允許將一個有限集合的值賦給具有多個值的元素和屬性。例如,你可能定義一個sizeListType類型,它使產(chǎn)品定義中的一個AvaliableSizes元素的賦值限制為S、M和L。SQL Server 2005支持XML schema包含這些簡單的類型定義和限制。例如,你可以使用一個list類型來定義一個產(chǎn)品的有效的型號,如下面的示例所示:

<xs:simpleType name="sizeListType">
  <xs:list>
  <xs:simpleType>
    <xs:restriction base="xs:string">
  <xs:enumeration value="S"/>
  <xs:enumeration value="M"/>
  <xs:enumeration value="L"/>
  </xs:restriction>
  </xs:simpleType>
  </xs:list>
</xs:simpleType>

這個schema 聲明使你可以創(chuàng)建一個列出所有型號的元素,其中產(chǎn)品可以按照被空格分開的一組值來購買,如下面的示例所示:  

<AvailableSizes>S M L</AvailableSizes>

然而,如果你想支持兩種不同的方式來表達一個產(chǎn)品的型號呢?例如,假設(shè)一個自行車產(chǎn)品零售商賣具有大、中、小型號的騎自行車穿的衣服,但是還想按照衣服尺寸來賣(例如18、20、22和24)?為了使你能夠這樣做,SQL Server 2008增加了對包含list類型的union類型的支持,你可以使用它將多個類型定義和限制合并到一個單獨的類型中去。例如,下面的Transact-SQL代碼創(chuàng)建了一個XML schema集合,它定義了一個productSizeType類型,其中有效值包括一組數(shù)字型號(18、20、22和24)和一組名稱型號(S、M和L)。

CREATE XML SCHEMA COLLECTION CatalogSizeSchema AS N'<?xml version="1.0" encoding="UTF-16"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">  <xs:simpleType name="productSizeType">    <xs:union>      <xs:simpleType>       <xs:list>       <xs:simpleType>        <xs:restriction base="xs:integer">         <xs:enumeration value="18"/>         <xs:enumeration value="20"/>         <xs:enumeration value="22"/>         <xs:enumeration value="24"/>        </xs:restriction>       </xs:simpleType>       </xs:list>      </xs:simpleType>      <xs:simpleType>       <xs:list>       <xs:simpleType>        <xs:restriction base="xs:string">         <xs:enumeration value="S"/>         <xs:enumeration value="M"/>         <xs:enumeration value="L"/>        </xs:restriction>       </xs:simpleType>       </xs:list>      </xs:simpleType>    </xs:union>  </xs:simpleType></xs:schema>'

有了schema中的這個聲明,任何基于productSizeType 的元素都可以包含任何種類的列表;所以下面示例中的兩種產(chǎn)品元素都是productSizeType數(shù)據(jù)類型的有效的實例。

<Catalog>
  <Product>
  <ProductName>Road Bike</ProductName>
  <AvailableSizes>22 24</AvailableSizes>
  </Product>
  <Product>
  <ProductName>Cycling Jersey</ProductName>
   <AvailableSizes>S M L</AvailableSizes>
  </Product>
  </Catalog>

類似的,SQL Server 2008支持對包含union 類型的list 類型的schema 聲明。

4 增強了XQuery

SQL Server 2005推出了xml 數(shù)據(jù)類型,它提供了一些你可以使用的方法來對存儲在一個列或變量中的XML數(shù)據(jù)進行操作。你可以執(zhí)行的大多數(shù)操作都使用XQuery語法來操縱和使用XML數(shù)據(jù)。SQL Server 2005所支持的XQuery 語法包括被稱作FLWOR 表達式的for、where、order by和return 條件子句,你可以使用它來循環(huán)迭代一個XML文檔的節(jié)點和返回結(jié)果值。

SQL Server 2008增加了對let條件子句的支持,它是用來在XQuery表達式中對變量進行賦值的,例如下面的示例:

declare @x xml
  set @x=
  '<Invoices>
  <Invoice>
   <Customer>Kim Abercrombie</Customer>
   <Items>
   <Item ProductID="2" Price="1.99" Quantity="1" />
   <Item ProductID="3" Price="2.99" Quantity="2" />
   <Item ProductID="5" Price="1.99" Quantity="1" />
   </Items>
  </Invoice>
  <Invoice>
   <Customer>Margaret Smith</Customer>
   <Items>
   <Item ProductID="2" Price="1.99" Quantity="1"/>
   </Items>
  </Invoice>
  </Invoices>'
  SELECT @x.query(
  '<Orders>
  {
  for $invoice in /Invoices/Invoice
  let $count :=count($invoice/Items/Item)
  order by $count
  return
  <Order>
  {$invoice/Customer}
  <ItemCount>{$count}</ItemCount>
  </Order>
  }
</Orders>')

這個例子返回下面的XML:

<Orders>
<Order>
 <Customer>Margaret Smith</Customer>
 <ItemCount>1</ItemCount>
</Order>
<Order>
 <Customer>Kim Abercrombie</Customer>
 <ItemCount>3</ItemCount>
</Order>
</Orders>

要注意SQL Server 2008不允許對構(gòu)造元素賦值。

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

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