|
|
 |
专题栏目 |
 |
 |
相关文章 |
 |
|
|
|
|
 |
品味SQL Server 2005的几个新功能 |
热 |
|
| 品味SQL Server 2005的几个新功能 |
|
作者:博客园 文章来源:不详 点击数: 更新时间:2007-11-14 13:13:45  |
|
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
|
|
| 文章录入:mintao 责任编辑:mintao |
|
|
上一篇文章: MS SQL 2005 安全设置 下一篇文章: 微软SQLServer2005的30项顶尖特性 |
|
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网] |
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| |
|
|
|
|