SQLserver数据库之存储过程与自定义函数-存储过程
1 存储过程的概念
- 定义
存储过程(Stored Procedure)是数据库中为了完成特定功能而编写的一组SQL 语句集,经编译后存储在数据库中,当需要使用这些功能时,用户通过存储过程的名字并给出必要的参数来执行它。
- 类别
(1)系统存储过程(以sp_开头)
(2)本地存储过程(用户创建)
(3)远程存储过程(常用于分布式查询)
(4)扩展存储过程 (一般以xp_开头,由外部语言程序编写)
(5)临时存储过程(放在TempDB中)
2 存储过程的使用
- 创建存储过程
一般形式:
CREATE PROC 过程名
@形参1 类型,
@形参2 类型…
AS
SQL语句
- 调用存储过程
一般形式:
EXEC PROC 过程名@实参1,@实参2
- 修改和删除存储过程
使用Alter修改存储过程,用新的语句替换以前的存储过程语句;
使用Drop PROC 删除存储过程名。
【例1】创建无参数存储过程,查询学校人数,并调用该存储过程。
创建:
create proc pro_getStuCounts as select schID,人数=count(*) from stuInfo group by schID
调用:exec pro_getStuCounts
注:使用存储过程,可以使用select
以表结果形式返回查询数据,或使用
return以值方式返回单个查询结果。
【例2】创建带参数存储过程,创建获取指定学校人数的存储过程并调用。
创建:
create proc proc_countSpecialSchool @schId char(6) as select count(*) as 人数 from stuInfo where schID=@schID
调用:
exec proc_countSpecialSchool ‘580101’
【例3】创建学生登录存储过程,检验输入的学生身份证号和密码是否匹配,分别返回1或0。
创建:
create proc proc_login @userId char(18),@userPass char(6) as begin if exists(select * from stuInfo where stuIdentity=@userId and stuPwd=@userPass) select 1 else select 0 end
调用: exec proc_login ‘51090219960829264x’,’29264x’
【例4】创建存储过程,改进第12讲例9,查询指定分页的数据。
创建:
create proc proc_pagingByNtile @pageIndex int,@pageCounts int as begin select stuIdentity,stuName,stuSex,schId,examNum from (select *,页码=ntile(@pageCounts) over (order by autoId) from stuInfo) a where 页码=@pageIndex end
调用: exec proc_pagingByNtile 50,100
本文所用到的有创建数据库与插入数据表的脚本
大家可以点击下方文字链接进行下载
数据库脚本
数据表脚本
IT技术-IT技术网站-IT技术学习-SQLserver数据库教程-自学编程就到志在指尖
© 版权声明
文章版权归作者所有,未经允许请勿转载。
版权声明:
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com