SQL Server存储过程模糊查询及分页

SQL Server存储过程模糊查询及分页

  • 概念
    SQLServer提供了一种方法,它可以将一–些固定的操作集中起来由SQLServer数据库服务器来完成,以实现某个任务,这种方法就是存储过程。
    存储过程是SQL语句和可选控制流语句的预编译集合,存储在数据库中,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其他强大的编程功能。
    在SQLServer中存储过程分为两类:即系统提供的存储过程和用户自定义的存储过程。

  • 优点
    可以在单个存储过程中执行一系列SQL语句。
    可以从自己的存储过程内引用其他存储过程,这可以简化一系列复杂语句。
    存储过程在创建时即在服务器上进行编译,所以执行起来比单个SQL语句快,而且减少网络通信的负担。安全性更高。

  • 实例

  1. 模糊查询
    –进行模糊查询,返回记录数,还要返回记录
    go
    create proc cp_select_book_byName
    (
    @name nvarchar(50),
    @rowCount int output
    )
    as
    select * from Books where Name like ‘%’+@name+’%’
    select @rowCount=COUNT(*) from Books where Name like ‘%’+@name+’%’
    –调用
    go
    –定义一个变量,来接受返回值@rowCount
    declare @rows int
    exec cp_select_book_byName ‘建筑’,@rows out
    print @rows

  2. 分页
    –创建一个存储过程,根据名称,第几页,每页显示多少条。查询满足条件的记录和记录数。
    go
    create proc cp_page
    (
    @name nvarchar(50),–名称
    @pageIndex int, --页码
    @pageSize int, --每页显示多少条
    @pageRows int out --输出参数满足条件的行数
    )
    as
    –查询名称是“建筑”查询的第三页,每页显示五条
    select top (@pageSize) * from Books
    where id not in(
    select top (@pageSize * (@pageIndex-1)) id
    from Books
    where name like ‘%’+@name+’%’
    order by id
    )
    and name like ‘%’+@name+’%’
    order by id
    –满足条件共多少条
    select @pageRows=count(*)
    from Books where name like ‘%’+@name+’%’
    –调用
    declare @prows int
    exec cp_page ‘测’,3,5,@prows out
    print @prows

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值