zoukankan      html  css  js  c++  java
  • SQL server动态拼接存储过程分页

    create proc StuPage (@name varchar(50), @pageSize int, @currentPage int, @totalCount int out)
    as
    begin
    declare @sql1 nvarchar(max), @sql2 nvarchar(max), @sqlCondition nvarchar(max), @sqlCount nvarchar(max) --定义变量
    set @sql1 = 'select * from (select *, ROW_NUMBER() over (order by Sname desc) xuhao from Student where 1 = 1 ' --定义头部
    set @sql2 = ' ) t1 where xuhao between (@currentPage - 1) * @pageSize +1 and @currentPage * @pageSize' --定义尾部
    set @sqlCount = 'select @totalCount = count(1) from Student where 1 = 1 ' --定义总条数查询语句

    set @sqlCondition = '' --置空条件
    if @name <> '' --判断姓名是否传入
    begin
    set @sqlCondition = @sqlCondition + ' and Sname = @name '
    end

    set @sql1 = @sql1 + @sqlCondition + @sql2 --把前、条件、后段语句合成
    exec sp_executesql @sql1, N'@name varchar(50), @pageSize int, @currentPage int', @name, @pageSize, @currentPage --执行查询
    set @sqlCount = @sqlCount + @sqlCondition --把总条数查询和条件拼接在一起
    exec sp_executesql @sqlCount, N'@name varchar(50), @totalCount int output', @name, @totalCount output --执行总条数查询
    end
    go

    declare @totalCount int
    exec StuPage '张三', 5, 2, @totalCount out
    select @totalCount

  • 相关阅读:
    2019 ICPC Universidad Nacional de Colombia Programming Contest
    AcWing
    模板
    AcWing
    AcWing
    AcWing
    模板
    模板
    自考新教材-p340
    自考新教材-p339
  • 原文地址:https://www.cnblogs.com/zhang2000/p/13230443.html
Copyright © 2011-2022 走看看