熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

SQL Server 2000的新特色

2013-11-15 14:39:08  來源: SQL Server 

   新的數據類型
  
   繼SQL 增加了四種新的數據類型之後SQL 又提供了三種新的數據類型分別是bigintsql_variant和table
  
   在數據量越來越大的今天用int(^ () 到 ^ ())來表示整數有時已經顯得不太夠用了FLOAT也不是很合適所以VB 和SQL 都有了新的整數類型這就是bigint它是bytes的整數類型范圍是^ () 到^ ()
  
  
   熟悉VBScript的人都知道VBS使用的是一種叫做variant的數據類型它可以存放任何數據類型數字字符對象等SQL 裡面的sql_variant還沒有那麼強大的功能它不能存放blob的數據如textntext和image還有timestamp但是已經給編程帶來了很大的方便了
  
  
   SQL裡面是沒有數組類型的但是新的表格類型允許應用軟件暫時存儲那些一會兒會用到的結果它不可以做為表的一個列出現而只能在TSQL程序中使用作為自定義函數的返回值很好用的
  
   Example:
  
   DECLARE @TableVar TABLE
  
   (Cola int PRIMARY KEY
  
   Colb char())
  
  
   INSERT INTO @TableVar VALUES ( abc)
  
   INSERT INTO @TableVar VALUES ( def)
  
  
   SELECT * FROM @TableVar
  
   GO
  
  
   要注意的是以前版本的ADO對這幾種數據類型的支持都不完全要在程序中使用這兩種數據請使用MDAC
  
  
  
  
   SQL Server 和 XML
  
   現在XML似乎很吃香各種東東都開始支持XML了善於跟風的MS自然是事事都想要帶頭的浏覽器OfficeSQLMDAC都要和XML攙和一哈
  
   去年MS就在MDAC還是裡面提供了一個功能把一個結果集保存為XML在SQL 裡面使用XML更加方便了SQL查詢可以直接返回一個XML並且還可以通過XML來修改數據庫中的數據哦
  
   要返回XML非常的簡單只需要在你的SQL 語句後面加一個FOR XML AUTO就可以了
  
  
   Example:
  
   SELECT TOP ID Filename Download_Time Introduce FROM download FOR XML AUTO
  
  
  
  
   如果使用FOR XML RAW的話就會返回
  
  
  
   如果用FOR XML AUTO ELEMENTS結果是
  
  
  
  
   ayako_katagiriexe
  
   T::
  
   片桐彩子Winamp Skin
  
  
   使用FOR XML EXPLICIT特別麻煩前面要定義一堆東西但是功能也很強大
  
   我就不詳細介紹了有興趣的可以參見Online BookUsing EXPLICIT Mode
  
   SELECT TOP as Tag Null as ParentID as [DownloadXML!!ID] Filename as
  
   [DownloadXML!!Filename] FROM download FOR XML EXPLICIT
  
   上面是如何返回XML數據下面來看一下如何把XML當表使用
  
   OPENXML可以把XML的數據打開成為一個表
  
   Example:
  
  
   declare @l int
  
   declare @txtXML varchar()
  
   set @txtXML =
  
  
  
  
   exec sp_xml_preparedocument @l OUTPUT @txtXML
  
   SELECT * FROM OPENXML (@l /Root/download) WITH (ID intFilename
  
  
   varchar())
  
   EXEC sp_xml_removedocument @l
  
   執行結果
  
   ID Filename
  
  
  
   ayako_katagiriexe
  
   beautimid
  
   beemp
  
   behaviorjs
  
   cactivexzip
  
   chatsrvrexe
  
   chatterexe
  
   chinazip
  
   ciyungb
  
   ci_shanxigb
  
  
   ( row(s) affected)
  
   這些功能意味著我們可以使用SQL 來生成一個XML並且通過XML的得到客戶端的返回值(不一定要通過ASP之類的工具哦可以通過URL來訪問SQL 返回的XML的不過這個功能我還沒有弄太明白所以先不介紹了)
  
   聯合SQL 服務器(Federated SQL Server Servers)
  
   可能大家都聽說過集群服務器Clustered Server但是在SQL 裡面我卻驚奇的發現集群服務器不見了!取而代之的是一個叫聯合服務器的東東
  
   現在就讓我們來看看它們之間有什麼區別吧
  
   SQL 的數據庫能夠被分散在一組獨立的數據庫服務器上以支持大規模的Web站點的訪問需求和企業級的數據處理系統面對日益增長的需求只需要簡單的添加一個節點服務器就可以了
  
   ——我怎麼看不出來和集群服務器有什麼區別嘛?
  
   ——上課的時候不要發出這種聲音!急什麼下面自然會講到的再亂講話就罰站了哦
  
   Windows 的COM+組件就是被設計來用於在集群的Windows 服務器上實現商業邏輯層的每個服務器上都有一套同樣的COM+組件WIndows 自己來平衡各個服務器之間的負載使用Cluster Administrator可以很方便的配置集群服務器
  
   但是SQL 並不支持這樣的集群SQL 支持可更新的分布式視圖(distributed partitioned views )用它來水平的將數據分割在一組服務器上這使得用戶可以把一個數據庫服務器添加到一組數據庫服務器中這些數據庫相互合作以提供和集群數據庫服務器相同的性能標准雖然它們合作管理這些數據但是它們之間是獨立運作的每個服務器有獨立的管理界面(當然你可以使用Enterprise Manager來管理一組服務器但總是作為一個Group中多個Server來管理的並不能把它們當作是一個Server)也有各自的運作規則可以有其他的數據和進程只是在聯合起來處理一個工作的時候才聯合在一起
  
   SQL 現在在多CPU的系統上可以有非常優異的性能(可以有個或者更多的CPU)但是使用聯合服務器你幾乎可以處理無限的負載現在 最高的tpcc紀錄就是CPU的聯合服務器完成的日的測試結果到現在仍然是最高的
  
   數據庫服務器和商業邏輯服務器不一樣運行商業邏輯的時候每個服務器都可以完成相同的工作即使一台服務器down了也不會對系統有什麼影響而數據庫就不一樣你必須把數據分散在不同的服務器上否則對性能就沒有什麼提高了而在這樣的情況下如果數據庫服務器不能用於處理獨自的事務那麼就顯得有些浪費
  
  
   OK課間休息min下面我們講重要的話題如何使用聯合服務器
  
  
   建立Linked Server
  
  
   SQL 就有了的東東打開你的Enterprise ManagerSecurity|Linked Servers右鍵New Linked ServerServer Type選SQL Server然後填上用戶名口令什麼的
  
  
   在每個服務器上建立表
  
   On Server:
  
   CREATE TABLE Table__To_
  
   (ID INT PRIMARY KEY
  
   CHECK (ID BETWEEN AND )
  
   other fields
  
   )
  
  
   On Server:
  
   CREATE TABLE Table__To_
  
   (ID INT PRIMARY KEY
  
   CHECK (ID BETWEEN AND )
  
   other fields
  
   )
  
  
   On Server:
  
   CREATE TABLE Table__To
  
   (ID INT PRIMARY KEY
  
   CHECK (ID > )
  
   other fields
  
   )
  
  
   在每個服務器上建立視圖
  
   CREATE VIEW Partitioned_Views AS
  
   SELECT * FROM MyDatabasedboTable__To_
  
   UNION ALL

From:http://tw.wingwit.com/Article/program/SQLServer/201311/22121.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.