zoukankan      html  css  js  c++  java
  • Sql Server 存储过程

    @pageSize 表示每页显示的行数
    @pageIndex 表示第几页显示

    1: 单独的一个分页查询基本格式为:

    select top @pageSize * from Table where Id not in 
    (select top @pageSize*(@pageIndex-1) Id from Table order by Id ) 
    order by Id

    2: 带where条件的分页查询的存储过程的建立

    create proc proc_Page
    @pageSize int=10,  -- 默认每页显示十条信息
    @pageIndex int=1,  -- 默认显示第一页
    @where varchar(50) ='1=2'  --默认where条件不成立
    as
    set nocount on  -- 关掉受影响的行数,以提升性能
    declare @sql varchar(300) 
    set @sql= 'select top '+convert(varchar,@pageSize)+' * from Table where Id not in (select top '+
              convert(varchar,@pageSize*(@pageIndex-1))+' Id from Table where '+
              @where +' order by Id ) and '+ @where +' order by Id '
    exec (@sql) 
    go

    调用存储过程:
    exec proc_Page 5,3,'1=1' --每页5条,
    第3页

    3:带输出参数的存储过程(新增,插入时使用)

      a: 输出类型为uniqueidentifier,并且是作为主键,默认值是newid() 的输出的存储过程

    create procedure proc_TableInsert
    @Id uniqueidentifier output,
    @Name varchar(50)
    as
    set nocount on
    set @Id=newid()
    Insert into table (Id,Name) values (@Id,@Name)
    @@error
    go


         b: 输出类型为int ,并且是作为主键,默认值自动增长列 的输出的存储过

    create procedure proc_TableInsert
    @Id int output,
    @Name varchar(50)
    as
    set nocount on
    Insert into table (Name) values (@Name)
    set @Id=scope_identity()
    @@error
    go


    4: 带输出聚合函数的存储过程

    create procedure proc_TableCount
    @recordCount int output
    as
    set nocount on 
    declare @sql nvarchar(200)
    set @sql=N'select @count=count(-1) from table'
    exec sp_executesql @sql , N'@count int output', @recordCount output
    return @@error
    go
    因为相信,所以我去做了......
  • 相关阅读:
    C 实战练习题目20 – 小球自由下落
    C 实战练习题目19
    C 实战练习题目18
    C 实战练习题目17
    C 实战练习题目16 -最大公约数和最小公倍数
    C 实战练习题目15
    C 实战练习题目14 -将一个正整数分解质因数
    C 实战练习题目13 -水仙花数
    C 实战练习题目12
    C 实战练习题目11
  • 原文地址:https://www.cnblogs.com/jeffqing/p/2733228.html
Copyright © 2011-2022 走看看