广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >分享SqlServer存储过程使用方法
  • 349
分享到

分享SqlServer存储过程使用方法

2024-04-02 19:04:59 349人浏览 独家记忆
摘要

目录一、简介二、使用三、在存储过程中实现分页一、简介 简单记录一下存储过程的使用。存储过程是预编译sql语句集合,也可以包含一些逻辑语句,而且当第一次调用存储过程时,被调用的存储过程

一、简介

简单记录一下存储过程的使用。存储过程是预编译sql语句集合,也可以包含一些逻辑语句,而且当第一次调用存储过程时,被调用的存储过程会放在缓存中,当再次执行时,则不需要编译可以立马执行,使得其执行速度会非常快。

二、使用

创建格式    create procedure 过程名( 变量名     变量类型 ) as    begin   ........    end 

create procedure getGroup(@salary int)
as
begin
   SELECT d_id AS '部门编号', AVG(e_salary) AS '部门平均工资' FROM employee
  GROUP BY d_id 
  HAVING AVG(e_salary) > @salary
end     

调用时格式,exec 过程名  参数

exec getGroup 7000

三、在存储过程中实现分页

3.1 要实现分页,首先要知道实现的原理,其实就是查询一个表中的前几条数据

select top 10 * from table  --查询表前10条数据 
select top 10 * from table where id not in (select top (10) id  from tb) --查询前10条数据  (条件是id 不属于table 前10的数据中)

3.2 当查询第三页时,肯定不需要前20 条数据,则可以

select top 10 * from table where id not in (select top ((3-1) * 10) id  from tb) --查询前10条数据  (条件是id 不属于table 前10的数据中)

3.3 将可变数字参数化,写成存储过程如下

create proc sp_pager
(
    @size int , --每页大小
    @index int --当前页码
)
as
begin
    declare @sql nvarchar(1000)
    if(@index = 1) 
        set @sql = 'select top ' + cast(@size as nvarchar(20)) + ' * from tb'
    else 
        set @sql = 'select top ' + cast(@size as nvarchar(20)) + ' * from tb where id not in( select top '+cast((@index-1)*@size as nvarchar(50))+' id  from tb )'
    execute(@sql)
end

 3.4 当前的这种写法,要求id必须连续递增,所以有一定的弊端

所以可以使用 row_number(),使用select语句进行查询时,会为每一行进行编号,编号从1开始,使用时必须要使用order by 根据某个字段预排序,还可以使用partition by 将 from 子句生成的结果集划入应用了 row_number 函数的分区,类似于分组排序,写成存储过程如下

create proc sp_pager
(
    @size int,
    @index int
)
as
begin
    select * from ( select row_number() over(order by id ) as [rowId], * from table) as b
    where [rowId] between @size*(@index-1)+1  and @size*@index
end

到此这篇关于分享SQL Server 存储过程使用方法的文章就介绍到这了,更多相关Sql Server 存储过程内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 分享SqlServer存储过程使用方法

本文链接: https://www.lsjlt.com/news/167095.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 分享SqlServer存储过程使用方法
    目录一、简介二、使用三、在存储过程中实现分页一、简介 简单记录一下存储过程的使用。存储过程是预编译SQL语句集合,也可以包含一些逻辑语句,而且当第一次调用存储过程时,被调用的存储过程...
    99+
    2022-11-13
  • sqlserver分页存储过程
    sqlserver 单表(视图)通用分页存储过程 create procedure proc_getpage @table_name varchar(100), --表名(视图) @select_fie...
    99+
    2019-07-22
    sqlserver分页存储过程
  • sqlserver通用分页的存储过程
    这篇文章主要讲解了“sqlserver通用分页的存储过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“sqlserver通用分页的存储过程”吧! ...
    99+
    2022-10-18
  • mssql 存储过程调用另一个存储过程中的结果的方法分享
    摘要:下文将分享"一个存储过程"中如何调用"另一个存储过程的返回结果",并应用到自身的运算中 在实际开发中,我们经常会遇到在一个存储过程中调用另一个存储过程的返回结果...
    99+
    2022-10-18
  • SQLserver存储过程写法与设置定时执行存储过程方法详解
    目录最近工作中需要写SQLserver的存储过程,第一次使用,简单记录下,以防遗忘。 在SQLserver可视化工具中编写,我的工具如下图: 首先点击你的数据库,找到可编程性,在可...
    99+
    2023-03-13
    sqlserver 定时执行存储过程 SQLserver存储过程 sqlserver存储过程写法
  • SQLServer分页存储过程有哪些
    本篇文章为大家展示了SQLServer分页存储过程有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  SQLServer分页存储过程有哪几种方法  创建数据库d...
    99+
    2022-10-18
  • mybatis调用sqlserver存储过程返回结果集的方法
    第一种:返回值通过out输出 sqlserver存储 testMapper.xml 两种都能接收到数据的, 因为我的实体类字段与数据库的不一致,上面图片是按照数据库字段定义的,下...
    99+
    2022-11-12
  • sqlserver中怎么优化分页存储过程
    sqlserver中怎么优化分页存储过程,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。代码如下: --代码一DECLARE @cc INT ...
    99+
    2022-10-18
  • SQLServer存储过程中事务如何使用
    SQLServer存储过程中事务如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。具体代码如下create pr...
    99+
    2022-10-18
  • 使用sqlserver官方驱动包调用存储过程遇到的坑及解决方法
    和外部系统做对接,对方提供了一个存储过程,对方为sqlserver数据库,我方为oracle数据库。需求简单来说就是调用对方的存储过程获得结果,转储到我方库,后续在对数据进行处理。 我写了个代码片段做测试,用jdbc来调...
    99+
    2022-10-13
  • sqlserver中怎么归调用存储过程
    这期内容当中小编将会给大家带来有关sqlserver中怎么归调用存储过程,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。递归式指代码片段调用自身的情况;危险之处在于:如果调...
    99+
    2022-10-18
  • Java中怎么调用SqlServer存储过程
    Java中怎么调用SqlServer存储过程,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  1.数据库连接packageco...
    99+
    2022-10-18
  • SQLServer中函数、存储过程与触发器的用法
    一、函数 函数分为(1)系统函数,(2)自定义函数。 其中自定义函数又可以分为(1)标量值函数(返回单个值),(2)表值函数(返回查询结果) 本文主要介绍自定义函数的使用。 (1)编...
    99+
    2022-11-13
  • sqlserver使用declare和set变量创建存储过程
    创建存储过程时,可以使用DECLARE和SET关键字来创建和设置变量。DECLARE关键字用于声明一个变量,并指定它的数据类型。例如...
    99+
    2023-09-16
    sqlserver
  • SqlServer存储过程中使用事务,示例模版
    create proc pro_GetProTrans @GoodsId int, @Number int, @StockPrice money, @SupplierId int, @EmpId int, @StockUnit varch...
    99+
    2018-03-13
    SqlServer存储过程中使用事务,示例模版 数据库入门 数据库基础教程
  • 实现SQL分页的存储过程代码分享
    这篇文章主要介绍“实现SQL分页的存储过程代码分享”,在日常操作中,相信很多人在实现SQL分页的存储过程代码分享问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”实现SQL分页的...
    99+
    2022-10-18
  • MYSQL与SQLserver之间存储过程的转换方式
    目录mysql与SQLserver之间存储过程的转换mysql存储过程sqlserver存储过程SQLserver转MYSQL存储过程的经验1. 存储过程的定义方式存在区别2. 批处理分隔符存在差异3. 可直接替换的关键...
    99+
    2022-11-28
    MYSQL存储过程 SQLserver存储过程 MYSQL与SQLserver储过程转换
  • MySql存储过程循环使用的方法
    今天小编给大家分享一下MySql存储过程循环使用的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。场景描述我们举一个简单的...
    99+
    2023-07-02
  • 存储过程用法
    创建无参存储过程 1 create procedure proc_test01 2 as 3 begin 4 select * from myrptdetail 5 end 执行无参存储过程 exec proc_tes...
    99+
    2017-09-20
    存储过程用法
  • SQLServer中怎么利用存储过程实现单条件分页
    SQLServer中怎么利用存储过程实现单条件分页,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。SQLServer Proced...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作