数据库

 首页 > 数据库 > SqlServer > SQL Server 2005改良后的几个实用新特征

SQL Server 2005改良后的几个实用新特征

分享到:
【字体:
导读:
         摘要: SQL Server 2005相对于SQL Server 2000做了很大的改良,许些新特征是非常实用的。本文中将通过几个具体示例进行具体的阐明。( 这些例子引用Northwind库) 1. TOP 表达式 SQL Server 2000的TOP是个固...

SQL Server 2005改良后的几个实用新特征

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

特别之处:通过表达式还可以支撑递回。



SQL Server 2005改良后的几个实用新特征
分享到:
黑客经验谈 MSSQL SA权限进侵的感悟
黑客经验谈 MSSQL SA权限进侵的感悟 想必大家都知道MSSQL中SA权限是什么,可以说是至高无上。今天我就它的迫害再谈点儿,我所讲的是配合NBSI上传功效得到WebShell。在讲之前先说几个条件,否则得到Shell是有难度的。 1、存在SQL注进,并且数据库类型是MSSQL。 2、连接数据库的权限必需是SA。 3、后台必需有文件上传的程序。...
3个步骤结束网站噩梦-SQL注进隐患!
3个步骤结束网站噩梦-SQL注进隐患! 很多网站程序在编写时,没有对用户输进数据的正当性进行判定,使利用程序存在安全隐患。 SQL注进是什么? 很多网站程序在编写时,没有对用户输进数据的正当性进行判定,使利用程序存在安全隐患。用户可以提交一段数据库查询代码(一般是在浏览器地址栏进行,通过正常的www端口拜访),根据程...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……