加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

浅谈sql存储过程的简单实例

发布时间:2022-03-03 14:36:22 所属栏目:MsSql教程 来源:互联网
导读:对于一些新手来说,sql存储过程是比较难理解的知识点之一,也是学习SQL server需要掌握的内容,对下本文给大家分享一些sql存储过程的示例,希望对帮助大家学习和理解sql存储过程有帮助。 例1: create proc proc_stu @sname varchar(20), @pwd varchar(20) a
  对于一些新手来说,sql存储过程是比较难理解的知识点之一,也是学习SQL server需要掌握的内容,对下本文给大家分享一些sql存储过程的示例,希望对帮助大家学习和理解sql存储过程有帮助。
 
   例1:
 
  create proc proc_stu
  @sname varchar(20),
  @pwd varchar(20)
  as
  select * from ren where sname=@sname and pwd=@pwd
  go
          查看结果:proc_stu 'admin','admin'
 
          例2:
 
          下面的存储过程实现用户验证的功能,如果不成功,返回0,成功则返回1.
 
  CREATE PROCEDURE VALIDATE @USERNAME CHAR(20),@PASSWORD CHAR(20),@LEGAL BIT OUTPUT
  AS
 
  IF EXISTS(SELECT * FROM REN WHERE SNAME = @USERNAME AND PWD = @PASSWORD)
  SELECT @LEGAL = 1
  ELSE
  SELECT @LEGAL = 0
          在程序中调用该存储过程,并根据@LEGAL参数的值判断用户是否合法。
 
          例3:一个高效的数据分页的存储过程 可以轻松应付百万数据
 
  CREATE PROCEDURE pageTest --用于翻页的测试
  --需要把排序字段放在第一列
 
  (
  @FirstID nvarchar(20)=null, --当前页面里的第一条记录的排序字段的值
  @LastID nvarchar(20)=null, --当前页面里的最后一条记录的排序字段的值
  @isNext bit=null, --true 1 :下一页;false 0:上一页
  @allCount int output, --返回总记录数
  @pageSize int output, --返回一页的记录数
  @CurPage int --页号(第几页)0:第一页;-1最后一页。
  )
 
  AS
 
  if @CurPage=0--表示第一页
  begin
  --统计总记录数
  select @allCount=count(ProductId) from Product_test
 
  set @pageSize=10
  --返回第一页的数据
  select top 10
  ProductId,
  ProductName,
  Introduction
  from Product_test order by ProductId
  end
 
  else if @CurPage=-1--表示最后一页
 
  select * from
  (select top 10 ProductId,
  ProductName,
  Introduction
 
  from Product_test order by ProductId desc ) as aa
  order by ProductId
  else
 
  begin
  if @isNext=1
  --翻到下一页
  select top 10 ProductId,
  ProductName,
  Introduction
  from Product_test where ProductId > @LastID order by ProductId
  else
  --翻到上一页
  select * from
  (select top 10 ProductId,
  ProductName,
  Introduction
  from Product_test where ProductId < @FirstID order by ProductId desc) as bb order by ProductId
  end

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读