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

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

SQL Server Yukon 中的XML 數(shù)據(jù)類型

2024-08-31 00:48:22
字體:
供稿:網(wǎng)友

sql server yukon 中的xml 數(shù)據(jù)類型

作者:suhil srinivas

翻譯:朱二

原文出處:http://www.c-sharpcorner.com/longhorn/yukon/xmldatatypesinyukon.asp
描述  這篇文章介紹了 sql server 最新版本 yukon beta1 中的新增數(shù)據(jù)類型。對任何了解 sql server2000 以及其他數(shù)據(jù)庫的開發(fā)者來說,本文是 一個好的起點。介紹  當sql server 2000發(fā)行之時,具有許多支持xml和internet應(yīng)用的特性。把xml集成到數(shù)據(jù)庫引擎中是值得考慮的努力。正如我們所見,sql?server 2000的后繼版本sql server yukon beta1已充分利用各種工具和方法將xml集成到sql server的數(shù)據(jù)庫引擎當中。  下面是一些有關(guān)sql server數(shù)據(jù)庫與xml集成的一些重要特性1、新增xml數(shù)據(jù)類型2、數(shù)據(jù)庫引擎對xquery的支持3、對sqlxml的增強和擴充4、對for xml和openxml的增強5、新增xml dml(xml數(shù)據(jù)修改語言),用來對作為xml數(shù)據(jù)類型存儲的xml數(shù)據(jù)。6、xquery設(shè)計器。  在這篇文章里,我僅限于討論sql server yukon beta1中的xml新數(shù)據(jù)類型。  現(xiàn)在,越來越多應(yīng)用程序支持xml,能夠提供一個強大的修改/處理/維護 xml數(shù)據(jù)是對一個數(shù)據(jù)庫來說是重要的。 我們知道,在sql server 2000里面,可以把xml文檔使用varchar類型保存在數(shù)據(jù)庫中,并通過分析提取xml文檔中的數(shù)據(jù),現(xiàn)在yukon不再需要這么做了。
  新的xml數(shù)據(jù)類型將以非文本的方式儲存,這使開發(fā)者可以查詢一個特定的節(jié)點而不需要提取、分析然后才能這個xml文檔。新的xml數(shù)據(jù)類型使開發(fā)工作中對數(shù)據(jù)庫層面的xml處理變的容易.

  xml數(shù)據(jù)類型象任何其他數(shù)據(jù)類型一樣可以作為字段、變量、或者存儲過程/用戶自定義函數(shù)的參數(shù),表函數(shù),觸發(fā)器,視圖等等。yukon允許在xml字段上有chek約束,這保證了數(shù)據(jù)的完整性。xml數(shù)據(jù)類型可以是定義的,也可以非定義的。

  定義的xml是一xml變量,參數(shù)或者字段并有一個在數(shù)據(jù)庫中注冊的xml架構(gòu)與之關(guān)聯(lián)。換句話說,yukon支持架構(gòu)。這一點使yukon自動檢查xml文檔片段的完整性和一致性。開發(fā)者使用create?xmlschema注冊一個xml架構(gòu),然后把xml實體關(guān)聯(lián)到該架構(gòu)。一個被關(guān)聯(lián)的xml架構(gòu)不能從sql server中刪除直到這些xml實體綁定到其他存在架構(gòu)。

  另一方面,一個未定義的xml沒有架構(gòu)與之關(guān)聯(lián)。即使把xml綁定到構(gòu)架是可選的,但它是首選的方式。定義的xml所有的節(jié)點將被作為本地sql類型(就象char,varchar等),從而使定義xml存儲的更為緊湊。從性能的觀點上看,使用定義的xml是更好的選擇。已經(jīng)存在的函數(shù)象cast和convert被增強以支持xml數(shù)據(jù)類型的轉(zhuǎn)換。增強的openrowset允許xml批量加載。

  與xml數(shù)據(jù)類型一起出現(xiàn)的幾個函數(shù)用于訪問和更新該數(shù)據(jù)類型。支持xml數(shù)據(jù)類型的方法有:1、query() : 這個方法用于從一個xml變量得到一個節(jié)點。此方法返回一個xml節(jié)點或者xml片段。2、value() : 這個方法在xml變量上應(yīng)用xquery,返回一個數(shù)量值,該值是一個本地sql類型而不是一個?? xml節(jié)點。3. exist() : 顧名思義,這個方法檢查xml變量是否包含特定的節(jié)點,或者在xquery得到一個空結(jié)果集的時候,判斷是否包含其他字串。4. modify() : 此方法使用xmldml語法更新xml變量。下面給出使用xml數(shù)據(jù)類型以及上述方法的例子
declare @xml xmldeclare @name varchar(20)declare @age intdeclare @xmlfragment xmldeclare @flag bitset @xml='25new castlemale'set @name = @xml::value('/student/@name','varchar(20)')set @age = @xml::value('/student/age','int')set @xmlfragment = @xml::query('/student/city')set @flag = @xml::exist('/student/age')print @name + ' is ' + convert(varchar(5),@age) + ' years old'print convert(nvarchar,@xmlfragment)print @flag
下圖中的消息窗口是返回的結(jié)果。 上圖演示convert函數(shù)的用法:把xml數(shù)據(jù)類型轉(zhuǎn)換成nvarchar類型。

下圖演示了modify方法的用法。


總結(jié)  這篇文章簡單涉及了xml數(shù)據(jù)類型的一些特性,而不是全部特性。yukon對xml的支持切實可以幫助應(yīng)用程序的開發(fā)者構(gòu)建高度xml支持的internet軟件。
--------------------------作者介紹  suhil?srinivas是一位經(jīng)驗豐富的開發(fā)者,他使用各種microsoft技術(shù)進行開發(fā)。suhil是一位mcp,他很熱心的指導和幫助新手。在構(gòu)建基于web、無線網(wǎng)絡(luò)和后臺系統(tǒng)方面有著豐富的經(jīng)驗,并且他一直為各種企業(yè)做咨詢工作,特別的是suhil一直從事于信用卡和支付處理行業(yè)。另外,他還是eduware?knowledge systems (eks)的懂事長。   作為一家公司,eks擁有幾款適用于任何規(guī)模的教育機構(gòu)的產(chǎn)品。其中一主要產(chǎn)品是school-erp系統(tǒng),此產(chǎn)品完全改變了教育機構(gòu)日常管理模式。其他產(chǎn)品中,也有一些適用于小型和中型的醫(yī)療服務(wù)提供機構(gòu)。eks 也提供咨詢服務(wù)并通過在印度bangalore的辦事處為海外客戶提供開發(fā)服務(wù)。
 
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 长兴县| 临桂县| 涟水县| 宜阳县| 霍林郭勒市| 苍梧县| 城口县| 江北区| 云浮市| 兰州市| 吉水县| 阜平县| 迁西县| 揭西县| 瓦房店市| 哈巴河县| 布拖县| 永靖县| 游戏| 潍坊市| 嘉黎县| 屏东县| 滦平县| 全州县| 巴南区| 光泽县| 启东市| 长岭县| 宁强县| 台江县| 阳山县| 英吉沙县| 罗田县| 溧水县| 筠连县| 鹿泉市| 漯河市| 平顶山市| 西安市| 措美县| 宜阳县|