av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

SQL Server 2005的XML支持與異常處理

瀏覽:109日期:2023-11-07 11:38:50

類型化和非類型化XML的優(yōu)勢(shì)

SQL Server 2005 包括對(duì)Transact-SQL (T-SQL) 語(yǔ)言的幾項(xiàng)重要改進(jìn)。新增功能之一是一種新的觸發(fā)器,它在數(shù)據(jù)定義語(yǔ)言 (DDL) 語(yǔ)句運(yùn)行時(shí)激發(fā)。在跟蹤或保護(hù)數(shù)據(jù)庫(kù)對(duì)象的創(chuàng)建和修改,或?qū)?shù)據(jù)庫(kù)服務(wù)器進(jìn)行更改時(shí),DDL 觸發(fā)器非常有用。另一個(gè)新功能涉及異常處理,該功能因包含TRY/CATCH 塊而在異常處理方面向前飛躍了一大步。另一組新功能則以新的XML數(shù)據(jù)類型為中心,該數(shù)據(jù)類型在與SQL Server交互的企業(yè)應(yīng)用程序中管理XML數(shù)據(jù)方面前進(jìn)了一大部。現(xiàn)在,XML 文檔或片段可以存儲(chǔ)于 XML 列、綁定到架構(gòu)、還可以利用 XQuery 語(yǔ)法查詢。本文匯總各類問(wèn)題來(lái)做出詳細(xì)解答。

問(wèn):類型化和非類型化 XML 列各自的優(yōu)勢(shì)是什么?

答:非類型化 XML 列可以存儲(chǔ)所有格式規(guī)范的 XML 片段或文檔,而類型化 XML 列可以綁定到 XML 架構(gòu)。如果不確定 XML 將遵循哪個(gè)架構(gòu),則非類型化 XML 很有用。例如,如果您必須使用另一個(gè)應(yīng)用程序的某些 XML,但無(wú)法確定數(shù)據(jù)將遵循哪個(gè) XML 架構(gòu),則可以使用非類型化 XML 列來(lái)執(zhí)行這項(xiàng)工作。當(dāng)然,非類型化 XML 也會(huì)帶來(lái)其他問(wèn)題。例如,不能針對(duì)某個(gè)架構(gòu)編程,因此很難有效地使用 XML。但有時(shí)無(wú)法避免非類型化 XML。創(chuàng)建非類型化 XML 列非常簡(jiǎn)單,如下所示:

CREATE TABLE Foo(FooID INT, someXml XML)

架構(gòu)不綁定到 XML 列的另一個(gè)結(jié)果是,SQL Server? 2005 會(huì)將非類型化 XML 作為一個(gè)字符串存儲(chǔ)。這是件好事還是壞事?實(shí)際上,既是好事也是壞事。將 XML 作為字符串存儲(chǔ)使您可以更靈活地存儲(chǔ)任何 XML 片段或文檔。根據(jù)應(yīng)用程序的業(yè)務(wù)規(guī)則,您可能需要這種方式。另一方面,將 XML 作為字符串存儲(chǔ)意味著,與類型化 XML 相比,既不能有效地存儲(chǔ)也不能有效地搜索 XML 數(shù)據(jù)。并且既不會(huì)告訴 SQL Server XML 將包含哪些內(nèi)容,也不會(huì)告訴它層次結(jié)構(gòu)和 XML 節(jié)點(diǎn)的數(shù)據(jù)類型。但請(qǐng)記住,僅僅因?yàn)檫@些是非類型化 XML 列并不意味著它們可以接受您設(shè)計(jì)出的任何格式。類型化和非類型化 XML 列仍然只接受格式規(guī)范的 XML。

如果您要存儲(chǔ)架構(gòu)已知的 XML 文檔,類型化 XML 列很理想。架構(gòu)可以定義元素、屬性、它們的數(shù)據(jù)類型、需要哪些字段以及數(shù)據(jù)的整個(gè)層次結(jié)構(gòu)。由于這種詳細(xì)信息有關(guān) XML 列的數(shù)據(jù),因此 SQL Server 2005 可以在內(nèi)部更加有效地存儲(chǔ) XML 數(shù)據(jù)。如果您嘗試存儲(chǔ)與架構(gòu)不匹配的 XML 數(shù)據(jù),則 SQL Server 會(huì)檢測(cè)到這一點(diǎn)并阻止您。

創(chuàng)建類型化 XML 列就像在括號(hào)中添加架構(gòu)名稱一樣簡(jiǎn)單,如下所示:

CREATE TABLE Foo(FooID INT, someXml XML(CONTENT FooSchema))

該語(yǔ)句指出 someXml 列必須遵循名為 FooSchema 的 XML 架構(gòu)集合。通過(guò)分別包含相應(yīng)的關(guān)鍵字 DOCUMENT 或 CONTENT,XML 可指定為必須是一個(gè)文檔或者可以包含一個(gè)片段。如果省略,則默認(rèn)值為 CONTENT。

可以使用 T-SQL 命令將 XML 架構(gòu)集合添加到數(shù)據(jù)庫(kù)中,如下所示:

CREATE XML SCHEMA COLLECTION [FooSchema] AS N 'put your schema here'

也可以使用 SQL Server Management Studio (SSMS) 創(chuàng)建 XML 架構(gòu)集合模板。從 View 菜單打開(kāi) Template Explorer,然后導(dǎo)航到 XML Schema Collections 節(jié)點(diǎn)并展開(kāi)它。然后,您可以雙擊 CREATE 模板打開(kāi)一個(gè)模板,該模板為您創(chuàng)建 XML 架構(gòu)集合提供了一個(gè)良好的語(yǔ)法開(kāi)端(參見(jiàn)圖 1)。

圖1:XML架構(gòu)集合模板是SSMS

相關(guān)文章:
主站蜘蛛池模板: 99精品国产一区二区三区 | 中日字幕大片在线播放 | 国产成人在线视频 | 成人国产精品色哟哟 | av激情影院| 日本免费黄色一级片 | 欧美精品一区在线发布 | www国产成人免费观看视频 | 亚洲精选一区二区 | 亚洲一区在线免费观看 | 国产成人精品亚洲日本在线观看 | 四虎影视在线 | 久久精品国产一区二区三区不卡 | 午夜久久久久 | 成年人免费在线视频 | 久久久久久天堂 | 欧美精品第一页 | 一区二区三区高清 | 欧美视频1 | 久久成人一区 | 久久久久国产一区二区三区四区 | 亚洲精品av在线 | 密色视频 | 日韩欧美手机在线 | 日韩高清国产一区在线 | 成人福利电影 | 黄色精品| 国产真实乱对白精彩久久小说 | 中文字幕免费视频 | 久久久久成人精品免费播放动漫 | 日韩手机在线看片 | 在线久草| 国产三级大片 | 成人在线观看免费视频 | 日本黄色高清视频 | 麻豆av电影网 | 欧美综合国产精品久久丁香 | 男人的天堂视频网站 | 日本高清视频在线播放 | 久久九九影视 | 亚洲区一区二 |