以下的文章主要向大家讲述的是SQL Server 2005新功能的品味,SQL Server 2005数据库相对于2000其在很多方面有很大的改进,有些在实际操作中还是非常实用的。举几个例子来简单说明 这些例子我引用了PB2K库。
1. TOP 表达式
SQL Server 2000的TOP是个固定值,是不是觉得不爽,现在改进了。
前n名的订单
- declare @n int
- set @n=10
- select top(@n) * from student
2. 分页
不知各位过去用SQL Server 2000是怎么分页的,大多都用到了临时表。SQL Server 2005一句话就支持分页,性能据说也非常不错。
按age从小到大排序,求1到10行的结果
- select * from (select pid,sname,row_number() over(order by age) as row from student) as temp where row between 1 and 10
3. 排名
- select * from(select pid, title,score, RANK() OVER(order by score desc) as rank from material where score is not null) as temp where rank between 1 and 4
4. try ... catch
SQL Server 2000没有异常,T-SQL必须逐行检查错误代码,对于习惯了try catch程序员,2005是不是更加亲切:
SET XACT_ABORT ON -- 打开 try功能
- BEGIN TRY
- begin tran
- insert into student(sname,age) values('test',22)
- commit tran
- print 'commited'
- END TRY
- BEGIN CATCH
- rollback
- print 'rolled back'
- END CATCH
5. 通用表达式CTE
通过表达式可免除你过去创建临时表的麻烦。
上述的相关内容就是对SQL Server 2005新功能的描述,希望会给你带来一些帮助在此方面。
【编辑推荐】