快速业务通道

《高性能的数据库》 第四讲 编程细节(2)

作者 佚名技术 来源 数据库编程 浏览 发布时间 2012-03-20
      ----------------------------------------------------------------------
       以上代码判断20之内的单数与双数。
                             --懒虫 # SapphireStudio
             精彩世界,尽在3腿软件网(www.chair3.com)!!
       -----------------------------------------------------------------------
  AA.d 返回值
    Sample:

     Create Proc spTest2
     As
      Return 22

    Use the Sample
     Declare @i int
     Exec @i=spTest2
     Select @i 

  AA.e 管理存储过程: 创建,修改,删除。
    分别为:
    Create Proc ... , Alter Proc ... , Drop Proc ...



 BB、更高级的编程要素:  a.系统存储过程 b.系统表 c.异常处理 d.临时表 e.动态SQL f.扩展存储过程 g.DBCC命令

   哈哈,以下课程收费!!(玩笑,实际上打算放到后面去讲了。)


3、函数。

  函数是SQL 2000的新功能。一般的编程语言都有函数,我就不用解释函数是什么东东了。:)
  或许不少朋友会问:我用存储过程不就可以了么,我为什么要使用函数?

  这里特别指出的一点:fn可以嵌套在Select语句中使用,而sp不可以。

  这里不打算大批特批一番游标了,当然,在我的程序里面,基本抛弃了游标(这里特别说明,是“基本”!因为还是有很多地方费用导游表不可的。),转而采用了fn。游标太消耗资源了。受不了……我快要感动得要流泪了…
 
  fn其实要比sp要简单得多。因为它的不确定性,从而也使他受到了不少的限制。
  举个函数的小粒子:

    Create Function fnTest ( @i int )
     Returns bit
    As
    begin
     Declare @b bit
     if (Cast(@i As Float)/2)=(@i/2)
      Set @b= 1
     else
      Set @b= 0

     Return @b 
     
    end

       ----------------------------------------------------------------------
       以上代码判断@i是单数还是双数。
                             --懒虫 # SapphireStudio
             精彩世界,尽在3腿软件网(www.chair3.com)!!
       -----------------------------------------------------------------------


   Use the Sample:


     Create Table #TT( fd1 int)
     Declare @i int
     Set @i=0
     While @i<=20
     begin
      Insert Into #tt Values(@i)
      Set @i=@i+1
     end

     Select fd1,
         ''是否双数''=dbo.fnTest(fd1)  --在这里调用了函数,注意哈:函数之前一定要加上他的owner.
     From #tt

     Drop Table #tt


       ----------------------------------------------------------------------
       以上代码虚拟一段数据,然后判断数据表中是单数还是双数。
                             --懒虫 # SapphireStudio
             精彩世界,尽在3腿软件网(www.chair3.com)!!
       -----------------------------------------------------------------------

    有了sp的编程基础,写fn也就不是什么很难的事情了。刚才我提到了,fn受到限制颇多,这里稍稍列举:

     chair1. 只能调用确定性函数,不可以调用不确定函数。 比如,不可以调用GetDate(),以及自己定义的不确定性函数。
     chair2. 不可以使用动态SQL 。如:Execute, s

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号