• 存储过程


    drop PROCEDURE usp_student  --删除程序 usp_student 
    
    
    --定义自己的第一个无参存储过程
    --CREATE  PROC[EDURE]  存储过程名 
    --           @参数1  数据类型 = 默认值 OUTPUT,
      --            … … ,
     --          @参数n  数据类型 = 默认值 OUTPUT
        -- AS
        --            SQL语句
        --GO
        
        
    --User Stored  Procedure      用户自定义存储过程      
    --      存信息的
    --创建   程序 
    Create procedure usp_student
    as --例如
    select *from Student 
    
    use MySchool   --定位数据库
    
        --创建     程序      学生目录(存储过程名)
          create procedure usp_studentlist
          @scoreLine int --声明分数线
          as  --例如
          select studentname,studentresult
          from student,result
          where student.studentno=result.studentno
          and studentresult>@scoreLine   --学生成绩大于分数线
          
        
          select *from Student--查询成绩表
          
          --调用存储过程
          exec usp_studentlist 92  --实行存储过程名大于90分
          
          
          
          declare @score  int  --声明局部变量score
          set @score=92        --赋值
          exec  usp_studentlist @score   --实行存储过程名
         
         
         
         --
          go
          alter procedure usp_studentlist    --更改程序 存储过程名
          @scoreLine int   --声明分数线
          as
          if(@scoreLine <0 or @scoreLine>100)      --0<分数线<100
          begin    --开始
          print '您输入的分数有误'    --输出
          end      ---结束
          else
          begin
          select studentname,studentresult
          from student,result
          where student.studentno=result.studentno
          and studentresult>@scoreLine
          end
          
          
          --调用存储过程
          exec usp_studentlist 12       --实行存储过程名大于12分
         --
          
          
          
          
          
          
       --更改  程序
          go
          create proc usp_getPageList   --创建  程序   存储过程名
          @pageIndex int, --当前是第几页
          @pageSize  int, --每页记录数  3
          @totalPages  int output--总页数   输出
          as
          select * from  
              (
                select*,row_number() over (order by studentno)as  myid 
                from Student
              )as temp
              where myid between (@pageIndex-1)*@pageSize+1 and @pageIndex*@pageSize
              --where myid between  1 and 3 
    
          --总页数=总记录数/pageSize
          declare @totalRecords int  
          select @totalRecords=COUNT(1) from Student
          
              set @totalPages=CEILING(@totalRecords*1.0/@pageSize)
              
              
              
              ---调用
              declare @pages int  --页数
              set @pages=0
             exec  usp_getPageList 1,3,@pages output   --输出
             print @pages
             
             select * from Student
             select 5*1.0/2
    
             --天花板函数
             select  CEILING(1.00000001)
             --地板floor函数  向下取整
             select FLOOR(1.9999999999999)
  • 相关阅读:
    用存储过程实现二进制字段的更新
    在Google 上搜书的方法 (转)
    Oracle开发中,关于查询的一个问题
    北京公司招聘 .net开发人员
    UIAlertView的使用方法
    FMEFB开始上传
    应用中的安全管理方案
    使用NHibernate时需要考虑的另一个问题
    .net使用Com组件的问题
    使用NHibernate时,如何提高访问Oracle数据库(ODP.net)的性能
  • 原文地址:https://www.cnblogs.com/WuXuanKun/p/5273182.html
Copyright © 2020-2023  润新知