SQL Server 2008 新特性

无论你关心SQL Server 2008版本中的新特性,还是正在开发基于SQL SERVER的应用,那么这段视频(1GB)是不能错过的,由微软负责SQL Server 2008项目经理演示的在CTP6中的各种新功能。总结如下:
1、在Management Studio中的Intellisense,以前你可能需要一些工具如SQL Prompt提供的智能完成,现在这个功能集成到了Management Studio中(智能完成业不是多高深的玩意儿,也不知道怎么现在才集成进来)。不过在CTP6中还不完善,只能在SELECT语句中使用。
2、新增了一些数据类型,比如只存储日期和只存储时间的数据类型,并且在与.NetDateTime数据交互时不需要额外的工作,由系统来完成转换,从而提高了索引的性能,降低了转化带来的开销。

 3 T-SQL 新語法 
      1 透過子句達成 Table Value Constructor
      INSERT INTO contacts VALUES ('John Doe', '425-333-5321'), 
       ('Jane Doe', '206-123-4567'), ('John Smith', '650-434-7869');

      SELECT * FROM
        (VALUES (1, 'cust 1', '(111) 111-1111', 'address 1'),(2, 'cust 2', '(222) 222-2222', 'address 2') ) AS C(custid, companyname, phone, address);
      2 Assignment 運算子:+=、 -=、*=、/=、%=
      DECLARE @price AS MONEY = 10.00;
      SET @price += 2.00;

      UPDATE Inventory SET quantity += s.quantity
      FROM Inventory AS i INNER JOIN Sales AS s ON i.id = s.id
      3  宣告時初始化變數
      DECLARE @v int = 5;
      DECLARE @v1 varchar(10) = ‘xxxxx’;
      DECLARE @d AS DATETIME = CURRENT_TIMESTAMP
      4 CAST/CONVERT 二進位資料型態成 16 進位字串 (例如: 0xA1BEFE)
      5 資料表類型參數當作預存程序的參數,傳遞複雜的結構或列表
      --定義自訂資料表型態
      CREATE TYPE tpMyTbl AS TABLE
       (ID INT, String NVARCHAR(100))
      GO

      --定義預存程序,使用資料表型態
      CREATE PROCEDURE spSelectFromTVP(  @TVParam tpMyTbl READONLY)
      AS
       SET NOCOUNT ON
       SELECT * FROM @TVParam
      GO

      --宣告自訂資料表型態的變數並賦予紀錄
      DECLARE @TVP AS tpMyTbl
      INSERT INTO @TVP(ID, String)  VALUES (1, 'Fairbanks')
      INSERT INTO @TVP(ID, String)  VALUES (2, 'Juneau')

      EXEC spSelectFromTVP @TVP

 過子句達成 Table Value Constructor

      6、系统提供了对层级查询的支持,通过IsDescendent(ID)可以方便实现,免去了繁重的递归查询这功能慢了Oracle好几拍),以前你常常得这么做。
      7、对GROUP语句的增强(我不care)
      8、新的Merge语句,用来同步多个表中的数据,并且性能不错。这也许为同步写入表和查询表提供了一个新的选择
4、在SQL Server中直接管理文件系统(安全吗),应该要为运行SQL Server的本地帐号授予这个目录的读写权限。可以在备份和恢复的时候与数据库绑定在一起。那不知道如果用了专门的文件服务器会怎么样。
5、为ADO.NET中的DataTable建立对应的类型,通过这个自定义类型,直接将DataTable的数据传入一个真实的数据库表中(看上去狠酷,至少我没这么想过)
6、对地理数据的支持,提供了Geometry类型,遵照OGC标准,对较简单的图形查询速度达到了次秒级(汗),通过将一个字段定义为geometry,可以将点线面数据都存储在这个数据类型中,设置它的值通过GEOMETRY::STGeomFromText方法如:

geometry::STGeomFromText
(
'POLYGON ((0 0, 150 0, 150 150, 0 150, 0 0))'0));

通过诸如STUnion,STIntersects,STBuffer等操作来完成传统GIS中的相交,缓冲区等操作,性能不错,与VE的结合也很好。
虽然对空间数据的支持还是比Oracle慢了几拍,但微软若做得足够好,至少对ESRI数据库产品的依赖能够尽量减少,用原生的ADO.NET数据引擎性能肯定也能提升很多。
posted on 2008-08-18 14:22  brake  阅读(252)  评论(0编辑  收藏  举报

我的最愛 聯繫我們 無障礙