• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

SQL Server 2005新功能-TSQL

发布: 2007-7-02 11:08 | 作者: admin | 来源: | 查看: 8次 | 进入软件测试论坛讨论

领测软件测试网

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
通过表达式可免除你过去创建临时表的麻烦。
www.knowsky.com


--例子:结合通用表达式进行分页
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就发布好了,敲入得到wsdl

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网