• SQL Server 2005的几个新功能,转一个老贴,加入自己一些体会和补充 无为而为


    (红色字是我添加的。)
    转自:
    http://www.cnfan.net/microsoft/mssql/2006-1/18/2006_01_18_735.html ? 其实我也不知道谁是最初的作者。

    SQL Server 2005相对于SQL Server 2000改进很大,有些还是非常实用的。

    举几个例子来简单说明 这些例子我引用了Northwind库。

    1. TOP 表达式
    SQL Server 2000的TOP是个固定值,是不是觉得不爽,现在改进了。 

    --前n名的订单
    declare @n int  
    set @n = 10  
    select TOP(@n* from Orders 


    2. 分页
    不知各位过去用SQL Server 2000是怎么分页的,大多都用到了临时表。SQL Server 2005一句话就支持分页,性能据说也非常不错。

    --按Freight从小到大排序,求20到30行的结果  
    select * from(  
        
    select OrderId, Freight, ROW_NUMBER() OVER(order by Freight) as row from Orders  
    ) a  
    where row between 20 and 30 

    3. 排名


    select * from(  
        
    select OrderId, Freight, RANK() OVER(order by Freight) as rank from Orders  
    ) a  
    where rank between 20 and 30 

    排名和分页不是用的同一个东西吗?

    4. try ... catch
    SQL Server 2000没有异常,T-SQL必须逐行检查错误代码,对于习惯了try catch程序员,2005是不是更加亲切:

    SET XACT_ABORT ON  -- 打开 try功能  
    BEGIN TRY  
        
    begin tran  
            
    insert into Orders(CustomerId) values(-1)  
        
    commit tran  
        
    print 'commited'  
    END TRY  
    BEGIN CATCH  
        
    rollback     
        
    print 'rolled back'  
    END CATCH 

    而且,现在可以进行单步的运行调试了,真好。


    5. 通用表达式CTE
    通过表达式可免除你过去创建临时表的麻烦。

       --例子:结合通用表达式进行分页 
    WITH OrderFreight AS(  
        
    select OrderId, Freight, ROW_NUMBER() OVER(order by Freight) as row from Orders  
    )  
    select OrderId, Freight from OrderFreight where row between 10 and 20 
    特别,通过表达式还支持递归。


    6. 直接发布Web Service
    想要把store procedure变成Web Service就用这个吧,.NET, IIS都不需要,通过Windows 2003的HTTP Protocol Stack直接发布WebService,用这个功能需要Windows 2003 sp1

    --DataSet CustOrdersOrders(string customerID)  
    CREATE ENDPOINT Orders_Endpoint  
    state
    =started  
    as http(  
        path
    ='/sql/orders',  
        AUTHENTICATION
    =(INTEGRATED),  
        ports
    =(clear)  
    )  
    for soap(  
        WebMethod 
    'CustOrdersOrders'(    
            name
    ='Northwind.dbo.CustOrdersOrders'  
        ),  
         
        wsdl
    =default,  
        
    database='Northwind',  
        namespace
    ='http://mysite.org/'  

    Web Service就发布好了,敲入http://localhost/sql/orders?wsdl得到wsdl
    这个 功能我们在项目里使用了一把,算是可以用吧,不够在授权上还是困惑了一把。

    其余功能,比如对Reporting Service的改进算是不小。
    至少配置起来算容易一点了(虽然还是容易配置实效),还有一个报表编辑器不错,微软使用.net 2.0的ClickOne部署的咚咚。使得你不需要安装VS或者SQLServer的编辑器也可以设计报表。(不过好像有个前提是你的报表是基于报表模型的,这个报表模型也是个有意思的东西,有时间下次介绍一下)
    另外一个重要功能就是对Analysis Service,真是个好东西,只要按照向导,很快就可以分析多维数据了,好。


  • 相关阅读:
    UML 类之间的关系
    [noi.ac省选模拟赛]第11场题解集合
    [CF1270F]Awesome Substrings
    [noi.ac省选模拟赛20200606]赌怪
    FFT,NTT入门
    [AHOI2017/HNOI2017]单旋
    [HNOI2016]最小公倍数
    [HNOI2016]树
    [HNOI2016]大数
    服务外包概论课程资料
  • 原文地址:https://www.cnblogs.com/cleo/p/499994.html
Copyright © 2020-2023  润新知