資源描述:
《如何使用sql server 2000中的xml功能--》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、如何使用SQLServer2000中的XML功能>> 在本文中我們將討論如何通過T-SQL的FORXML子句從SQLServer返回XML。本文將通過幾個例子來介紹返回XML數(shù)據(jù)和架構(gòu)信息的幾種不同方式,還將介紹將XML轉(zhuǎn)換成更令人滿意的格式的方法。然后討論OPENXML,以及將XML文檔聯(lián)接到數(shù)據(jù)庫表和使用L的方法。 SQLServer2000提供了一些XML功能,用于通過XML將關(guān)系行集合轉(zhuǎn)換成分層的XML文檔、讀取XML文檔和批量加載數(shù)據(jù)。例如,可以將XML文檔傳遞到存儲過程,將XML聯(lián)接到
2、某些表并返回一個行集合,甚至可以在數(shù)據(jù)庫中修改數(shù)據(jù)。XML在當(dāng)今企業(yè)系統(tǒng)中不斷擴(kuò)展的功能促進(jìn)了OPENXML函數(shù)和FORXML語句的引入。其中某些功能不但支持XML,而且還提高批量加載數(shù)據(jù)時的性能?! ≡诒疚闹形覀儗⒂懻撊绾瓮ㄟ^T-SQL的FORXML子句從SQLServer返回XML。本文將通過幾個例子來介紹返回XML數(shù)據(jù)和架構(gòu)信息的幾種不同方式,還將介紹將XML轉(zhuǎn)換成更令人滿意的格式的方法。然后討論OPENXML,以及將XML文檔聯(lián)接到數(shù)據(jù)庫表和使用L的方法。這些例子的SQL,以及執(zhí)行其中某些例子
3、并將它們導(dǎo)出為文本文件的示例ASP.項目,都可從MSDNMagazineL將記錄插入和更新到數(shù)據(jù)庫的代碼?! 》祷豖ML 當(dāng)用于SELECT語句中時,F(xiàn)ORXML子句指示SQLServer將數(shù)據(jù)作為XML返回,這與標(biāo)準(zhǔn)行集合相反??梢灾付ǚ祷啬J剑篟AL的不同轉(zhuǎn)換方式(圖1給出了各種模式的概述)?! D1FORXML模式概述模式說明RAL元素。<roployees表,它會在<roployeeID,FirstName,LastNameFROMEmployeesLRAEmployeesLAU
4、TO<EmployeesEmployeeID=1FirstName=NancyLastName=Davolio/><EmployeesEmployeeID=9FirstName=AnneLastName=Dodsers.CustomerID,panyName,OrderID,CONVERT(VARCHAR(10),OrderDate,101)ASOrderDateFROM CustomersINNERJOINOrdersONCustomers.CustomerID=Orders.C
5、ustomerIDORDERBYCustomers.CustomerID 本例將檢索一種一對多父子關(guān)系。若執(zhí)行該SQL語句,則將返回一系列客戶及其相應(yīng)定單。若附帶FORXMLRAL結(jié)果將包含一個表示所返回的每一行的單<roerID為ALFKI時FORXMLRAL數(shù)據(jù) 請注意,這些數(shù)據(jù)不以父子層次結(jié)構(gòu)顯示。若想讓數(shù)據(jù)顯示為包含一系列相關(guān)<Orders>元素的一系列<Customers>元素,則可使用FORXMLAUTO子句(父子嵌套方法取決于成組聚集的父行)。Custo
6、merID為ALFKI時的XML結(jié)果如下:<CustomersCustomerID=ALFKIpanyName=AlfredsFutterkiste><OrdersOrderID=10643OrderDate=08/25/1997/><OrdersOrderID=10692OrderDate=10/03/1997/><OrdersOrderID=10702OrderDate=10/13/1997/><OrdersOrderID=10835Order
7、Date=01/15/1998/><OrdersOrderID=10952OrderDate=03/16/1998/><OrdersOrderID=11011OrderDate=04/09/1998/></Customers> 該XML的可讀性大大提高,因為它使用表名來作為元素名。它所包含的數(shù)據(jù)也比較少,因為它不重復(fù)每個定單元素的CustomerID和panyName屬性,而FORXMLRAL子句中指定ELEMENTS選項,所有列值都將成為XML中的元素。有
8、時百聞不如一見,因此本文在圖3中給出了當(dāng)ELEMENTS條件適用時前面查詢的輸出。(為了簡便起見,給出的XML示例僅包含CustomerIDALFKI的XML。這些查詢所生成的實際XML會包含所有客戶及其定單的XML。)使用ELEMENTS選項的查詢?nèi)缦拢篠ELECT Customers.CustomerID,panyName,OrderID,CONVERT(VARCHAR(10),OrderDate,101)ASOrderDateFROM Custo