黑马程序员——创建存储过程

来源:互联网 发布:淘宝女童模特可可真名 编辑:程序博客网 时间:2024/04/28 00:59
---------------------- Windows Phone 7手机开发、ASP.Net培训、期待与您交流! ----------------------

存储过程其实非常类似平常写的方法,定义存储过程的语法如下:
    CREATE  PROC[EDURE]  存储过程名 
    @参数1  数据类型 = 默认值 OUTPUT,
    @参数n  数据类型 = 默认值 OUTPUT
    AS
      SQL语句
参数说明:
参数可选
参数分为输入参数、输出参数 
输入参数允许有默认值
EXEC  过程名  [参数]


假设有以下一张Category表如下:


我们接下来要通过创建一个存储过程来实现分页的过程,分页就是比如一页要显示几行,然后从第几页开始显示。

--编写分页存储过程--通过row_number() 来实现分页过程alter proc proGetPageData@pageIndex int=1, --默认的页码为1,定义和初始化同时进行@pageSize int=5 --默认的页容量为5asselect * from(select ROW_NUMBER() over(order by c_addtime) as ri, * from Category) as e where e.ri>(@pageIndex-1)*@pageSize and e.ri<=@pageIndex*@pageSize
下面执行存储过程,根据以上的存储过程定义的语法,我们可以如下分别传递不同的参数来实现:


1)--传入第一个参数,第二个参数用默认值exec proGetPageData1 1 --页容量按默认的传参数2) --传入两个参数(按照传入参数的顺序先后赋值) exec proGetPageData1 1,5 --隐式传参数3)--显示传入第二个参数(和顺序无关) exec proGetPageData1 @pageSize=3,@pageIndex=1 --显示传参数4) --显示传入第二个参数(第一个参数使用默认值) exec proGetPageData1 @pageSize=3

执行第三种的语句,其结果如下所示:


正如从结果可以看出,因为执行了

 exec proGetPageData1 @pageSize=3,@pageIndex=1 
表明从第一页开始,然后每页的容量为3.





---------------------- Windows Phone 7手机开发、ASP.Net培训、期待与您交流! ----------------------
原创粉丝点击