无废话-SQL Server 2005新功能(1) - TSQL

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

转载于:https://www.cnblogs.com/guodapeng/archive/2008/04/06/1139244.html

无废话-SQL Server 2005新功能(1) - TSQL相关推荐

  1. SQL Server 2016 新功能之综述

    冬去春来,发现之前最后一篇写在2012年,又过去了5年了,时间如飞啊.那时候SQL 2012 发布让人兴奋了一把,哪知道时间如刀,刀刀催人老啊,今天SQL 2016都发布了很久了,很快SQL On l ...

  2. Sql Server 2016新功能之Row-Level Security(值得关注)

    Sql Server 2016 有一个新功能叫 Row-Level Security ,大概意思是行版本的安全策略(原来我是个英语渣_(:з」∠)_) 直接上例子.这个功能相当通过对表添加一个函数作为 ...

  3. mysql桦仔_Microsoft SQL Server 2005技术内幕:T-SQL查询笔记

    Microsoft SQL Server 2005技术内幕:T-SQL查询笔记 目录 f f f f f f f f 第二章 物理查询处理 分析,代数化,查询优化 f f f f f. 分析--> ...

  4. SQL Server 2005新特性之使用with关键字解决递归父子关系

    1. 引言 现实项目中经常遇到需要处理递归父子关系的问题,如果把层次关系分开,放在多个表里通过主外键关系联接,最明显的问题就是扩展起来不方便,对于这种情况,一般我们会创建一个使用自连接的表来存放数据. ...

  5. SQL Server 2012新功能

    SQL Server 2012 对微软来说是一个重要产品.微软把自己定位为可用性和大数据领域的领头羊. 1. AlwaysOn -这个功能将数据库的镜像提到了一个新的高度.用户可以针对一组数据库做灾难 ...

  6. SQL Server 2014新功能 -- 内存中OLTP(In-Memory OLTP)

    概述 内存中OLTP(项目"Hekaton")是一个全新的.完全集成到SQL Server的数据库引擎组件. 对OLTP工作负载访问中在内存中的数据进行了优化.内存中OLTP能够帮 ...

  7. SQL Server 2017 新功能分享

    本篇文章是我在MVP直通车分享的关于SQL Server 2017的新功能,现在ppt分享如下,可以点击这里下载. 转载于:https://www.cnblogs.com/CareySon/p/SQL ...

  8. 【SQL 编程你也行】SQL Server 2012新功能之函数:iif函数

    iif(布尔表达式,value1,value2) 也就是说如果表达式成立,那么就返回value1,如果不成立,就返回value2. 1.下面是一个简单的例子,大家一看就明白iif函数的功能. 2.就像 ...

  9. 【SQL 编程你也行】SQL Server 2012新功能之函数:choose函数

    choose(id,value1,value2,value3,...) choose函数可以根据传入的id值,返回值所对应的参数值,比如传入2,那么就返回 value1,value2,value3,. ...

最新文章

  1. abaqus二次开发python 建立集合,ABAQUS二次开发-Python脚本运行方式
  2. python面试-python面试问题集锦
  3. mysql 忘记root密码的解决
  4. 监控开发之用munin来自定义插件监控redis和mongodb
  5. Servlet相关(request域转发、重定向、刷新头)(session域)
  6. linux进程自动启动,linux 嵌入式 自启动 系统自动登录-自动启动程序或脚本
  7. 老罗Android开发视频教程_基于JavaSE开发(适合Android初学者菜鸟级别的人)
  8. 中国支付清算发展简史
  9. cad多段线画圆弧方向_cad怎么把多段线变成弧线
  10. insert on duplicate key update命令
  11. 计算机专业英语教程ppt,计算机专业英语教程课件.ppt
  12. 水果忍者(数学 叉积)
  13. 逆水寒能不能网页预约服务器,不是说《逆水寒》凉了吗,为什么新服预约不到1小时就满了?...
  14. 云原生时代,OAM模型加持下的应用交付与管理实践
  15. Eclipse不能查看Servler源码问题
  16. Android利用zxing生成二维码,识别二维码,中间填充图片超详细、超简易教程
  17. 【从零开始】阿里云服务器配置web开发环境及部署本地web项目
  18. 苹果耳机airpods2需要激活?_苹果耳机三兄弟,谁才是安卓手机的绝配?
  19. 电压跟随器的作用- -电压跟屁虫有什么作用呢???
  20. JavaCard开发环境搭建

热门文章

  1. 76 道 Oracle Goldengate 面试问题
  2. maven命令-P 参数
  3. 成为JavaGC专家(1)—深入浅出Java垃圾回收机制
  4. MySQL介绍与语言结构
  5. [转载] 马化腾-“杀人的网络,互联网的大是大非问题”专访腾讯董事会主席兼CEO马化腾...
  6. Zend Framework一
  7. ISA Server 2006 安全保障指南
  8. c# BackgroundWorker组件介绍(属性、方法、事件)
  9. 比特币现金是否失去了去中心化
  10. DPOS机制会比POW机制表现更好吗?