设为首页
加入收藏
帮助中心
首页 | 红盾通告 | 信息中心 | ASP技术 | 数据库 | 网页设计 | 网管专栏 | OICQ攻略 | 墨客频道 | 网站运营 |
当前位置:首页 >> 数据库 >> SQL Server >> 正文
最新信息
·SQL2000做附加数据库时报:…
·数据库sql被挂马终极批量删…
·动网论坛全文索引建立帮助
·论坛不支持文章内容搜索的…
·打造抵御SQL注入攻击的MSS…
·10个保护SQL Server 2000安…
·sql server安全设置攻略
·SQL Server安全设置清单列…
·使用 SQL Server 时需要经…
·SQL中触发器实例讲解
资料搜索
热点信息
·如何压缩SQL Server 2000数…
·SQL中触发器实例讲解
·日志文件满而造成SQL数据库…
·10个保护SQL Server 2000安…
·使用 SQL Server 时需要经…
·SQL2000做附加数据库时报:…
·SQL SERVER的安全隐患:触…
·asp如何连接sql server并实…
·SQL Server不能启动的常见…
·一种简单的表中删除重复行…
推荐信息
·打造抵御SQL注入攻击的MSS…
·SQL Server数据库开发的二…
·Sqlserver 优化的方法
·SQLServer吞噬的内存解决办…
·SQL SERVER日志清除的两种…
·如何压缩SQL Server 2000数…
·SQL Server 2000 SP4发布
·动网论坛全文索引建立帮助
·10个保护SQL Server 2000安…
·SQL Server安全设置清单列…


Google
 
SQL Server 2005新功能-TSQL
〖编辑:Cloudy | 浏览:人次〗

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就发布好了,敲入http://localhost/sql/orders?wsdl得到wsdl

 


录入时间:2006-06-09 16:20:02 [打印本页] [关闭窗口] [返回顶部]
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

Copyright © 2006-2014 0733168.Com Inc All Rights Reserved
关于我们 | 广告合作 | 联系我们 | 法律声明 | 友情链接 | 意见反馈
本站所收录信息、社区话题、及本站所做之广告均属其个人行为,与本站立场无关
湘ICP备06008436号