新的數據類型
繼SQL 7增加了四種新的數據類型之後,SQL 2000又提供了三種新的數據類型,分別是bigint、sql_variant和table。
在數據量越來越大的今天,用int(-2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647))來表示整數有時已經顯得不太夠用了,FLOAT也不是很合適,所以VB 7和SQL 2000都有了新的整數類型,這就是bigint,它是8bytes的整數類型,范圍是-2^63 (-9223372036854775808) 到2^63-1 (9223372036854775807)。
熟悉VBScript的人都知道,VBS使用的是一種叫做variant的數據類型。它可以存放任何數據類型,數字、字符、對象等。SQL 2000裡面的sql_variant還沒有那麼強大的功能,它不能存放blob的數據,如text、ntext和image,還有timestamp,但是已經給編程帶來了很大的方便了。
SQL裡面是沒有數組類型的,但是新的表格類型允許應用軟件暫時存儲那些一會兒會用到的結果。它不可以做為表的一個列出現,而只能在T-SQL程序中使用。作為自定義函數的返回值很好用的。
Example:
DECLARE @TableVar TABLE
(Cola int PRIMARY KEY,
Colb char(3))
INSERT INTO @TableVar VALUES (1, ’abc’)
INSERT INTO @TableVar VALUES (2, ’def’)
SELECT * FROM @TableVar
GO
要注意的是,以前版本的ADO對這幾種數據類型的支持都不完全,要在程序中使用這兩種數據,請使用MDAC 2.6。
SQL Server 2000 和 XML
現在XML似乎很吃香,各種東東都開始支持XML了。善於跟風的MS自然是事事都想要帶頭的。浏覽器、Office、SQL、MDAC都要和XML攙和一哈。
去年MS就在MDAC2.0還是2.1裡面提供了一個功能,把一個結果集保存為XML,在SQL 2000裡面,使用XML更加方便了,SQL查詢可以直接返回一個XML,並且還可以通過XML來修改數據庫中的數據哦。
要返回XML非常的簡單,只需要在你的SQL 語句後面加一個FOR XML AUTO就可以了。
Example:
SELECT TOP 1 ID, Filename, Download_Time, Introduce FROM download FOR XML AUTO
如果使用FOR XML RAW的話,就會返回
如果用FOR XML AUTO, ELEMENTS,結果是
1
ayako_katagiri.exe
1998-12-21T00:00:00
片桐彩子Winamp Skin
使用FOR XML EXPLICIT特別麻煩,前面要定義一堆東西,但是功能也很強大,
我就不詳細介紹了,有興趣的可以參見Online Book:Using EXPLICIT Mode
SELECT TOP 1 1 as Tag, Null as Parent,