一、 引言
如今,在SQL Server 2005中,XML成為第一流的數據類型。借助於基於XML模式的強類型化支持和基於服務器端的XML數據校驗功能,現在,開發者可以對存儲的XML文檔進行輕松地遠程修改。
作為數據庫開發者,許多人都必須大量地涉及XML。
如今,在SQL Server 2005中,你能以一種新的數據類型的形式把XML存儲在數據庫中。
事實上,在SQL Server 2000中就已經包括了一些XML特征。其中,最關鍵的特征是使用FOR XML語句以XML形式返回結果。SQL Server 2005的功能則明顯不同。在SQL Server 2005中,XML是一種真正的數據類型;這意味著,你可以使用XML作為表和視圖中的列,XML可以用於T-SQL語句中或作為存儲過程的參數。現在,你可以直接在數據庫中存儲、查詢和管理XML文件。
更重要的是,現在你還能規定你的XML必須遵從的模式。
在SQL Server 2005中,除了提供機制以校驗你的數據庫中的XML類型之外,它還允許你描述要被存儲的復雜數據類型並且提供一個引擎來強制施加這些規則。
二、 使用XML數據類型
其實,XML數據類型與SQL Server中的其它數據類型並不存在根本的區別。你可以把它用在使用任何普通SQL數據類型的地方。例如,下列語句創建一個XML變量並用一個XML填充它:
DECLARE @doc xml
SELECT @doc = '<Team name="Braves" />'
另外,你還可以使用一個查詢和SQL Server的FOR XML語法來填充一個XML變量:
SELECT @doc =
(SELECT * FROM Person.Contact FOR XML AUTO)
XML數據類型不僅可以作為變量使用,也可以應用於表列中。你還能分配缺省值並且支持NOT NULL約束:
CREATE TABLE Team
(
TeamID int identity not null,
TeamDoc xml DEFAULT '<Team />' NOT NULL
)
注意:SQL Server 2005的XML功能與SQL Server 2000中具有明顯的不同。