關於SQL Server 2000對XML支援的一些見解

來源:互聯網
上載者:User
                     關於SQL Server 2000對XML支援的一些見解
主要針對"select  欄位1,欄位2,...,欄位n from 表或多表聯集查詢 where 條件 for xml auto"類似語句的討論

本人在使用以上語句產生XML資料時,發現了一些SQL Server 2000產生XML資料的一些規律,給我的感覺是要求太苛刻了,從中也可以看出微軟早期對XML支援的不足.現在就把我的這些體會寫給大家看看,不對不足的地方望大家指出。
XML可以很方便地描述樹型結構資料,相對於關係型資料來說,這方面就有點不足。為此從關係型資料轉換到樹型結構資料就比較麻煩。還好,SQL Server 2000提供了這方面的轉換介面。但想轉換好也是有條件的。

前提:SQL Server 2000已經有描述樹型結構資料的基本表(視圖)[如大學裡的院系班的樹型結構資訊,院資訊一個表、系資訊一個表、班資訊一個表,表之間已經建立了主外鍵關係]

1、要顯示的欄位的位置是有順序的,如要正確顯示院系班的樹型結構關係,轉換SQL語句應該這麼寫:
     select 院,系,班 from 院,系,班 where 條件 for xml auto
2、盡量不要對顯示的欄位作任何運算與處理,因為這樣會破壞基本表(視圖)的資料作為某一層資料的約定。
   比如對"select 院,系,班 from 院,系,班 where 條件 for xml auto" 語句的“系”欄位作了一些運算與處理後,
  則SQL Server 2000無法正確地描述"系"欄位產生XML資料後屬於那一層資料。一般情況下,
 SQL Server 2000會把”系“欄位自動加進”院“或”班“一層。這樣就得不到我們想要的結果。
3、多表聯集查詢時,不要有子查詢,因為即使你用了子查詢也是沒用的,
   "select  欄位1,欄位2,...,欄位n from 表或多表聯集查詢 where 條件 for xml auto"這樣的轉換語句是只認基本表與視圖的。  別妄想用子查詢實現一些複雜的功能。

以上是自已在使用"select  欄位1,欄位2,...,欄位n from 表或多表聯集查詢 where 條件 for xml auto"語句時的一些體會,胡言亂語了一通。
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.