SQL Server数据库存储过程——以自定义存储过程为例
1、什么是数据库存储过程
存储过程就是预编译SQL语句的集合,这些语句存储在一个名称下并作为一个单元处理。存储过程代替了传统的逐条执行SQL语句的方式
SQL server提供了三种类型存储过程:
系统存储过程:用户管理SQL server和显示有关数据库和用户信息的存储过程
自定义存储过程:用户在SQL server中通过采用SQL语句创建的存储过程,或者使用向导创建的存储过程。
扩展存储过程:通过编程语言(如C语言等)创建外部例程,并将这个例程在SQL server中作为存储过程使用。
本文使用的实例的数据表如下:
2、存储过程的创建
2.1 使用向导创建存储过程:在数据库的【可编程性】总找到【存储过程】,右键【新建存储过程】,SQL Server会自动给出一个存储过程的默认的模板。
2.2使用SQL语句创建存储过程
--不带参数的存储过程,功能是选出所有女生的学号,姓名和性别create procedure pro_femalestu_no@asSELECT Sno,Sname,Ssexfrom StudentWHERE Ssex='f'--创建带参数的存储过程,功能是选出学号为@proc_Sno的学生的姓名和年龄create procedure proc_student_yes@@proc_Sno int asselect Sname,Sagefrom Student where Sno=@proc_Sno
3、执行存储过程
--执行不带参数的存储过程exec pro_femalestu_no@--执行带参数的存储过程,需要传入参数的额值exec proc_student_yes@ @proc_Sno=072001
4、查看存储过程的定义
--查看数据库的存储过程,其中sys.sql_modules为系统视图,select* from sys.sql_modules--查看某一个具体的存储过程的定义select OBJECT_DEFINITION(165575628)
5、修改存储过程
方法1是在对应的存储过程右键修改,方法2是使用SQL语句修改
--修改带参数的proc_student_yes@存储过程的参数alter procedure proc_student_yes@@Sname varchar(10)as select * from Student Where Sname=@Sname--测试是否已经修改成功exec proc_student_yes@@Sname=‘gg’
6、删除存储过程
--删除proc_student_yes@这个存储过程drop proc_student_yes@--测试是否完成删除工作exec proc_student_yes@