在学校学习sql的时候很多概念和方法都是很模糊的,今天在公司实习的时候看到了一个存储过程,借此自学巩固一下。
存储过程概念
存储过程是SQL语句和可选控制流语句的预编译集合,存储在数据库中,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其他强大的编程功能。这话比较简单也较官方,而我对存储过程的理解就是将固定的操作集放入数据库去执行,但与此同时,它也有自己的数据类型、流程控制和输入输出等。
下面是自己写的两个小例子来加深印象。
实例(1):创建存储过程
1 create Procedure Pro 2 @SID varchar(10), --代号 3 @SName varchar(10), --名称 4 @SType varchar(10), --类型 5 as 6 begin 7 declare @Status int, --状态 8 declare @SQty varchar(10), --数量 9 10 set @Status=0 --状态 11 set @SQty=0 --数量 12 13 select @SName=SName from test 14 where Sid=@SID and @SType=SType 15 if @Status=7 16 begin 17 set @Status =@Status+'关闭'+char(10)+char(10) 18 select @Status Status
19 return 20 end
执行Pro这个存储过程,declare声明一个变量用来接收执行过存储过程后的返回值,@X代表一个变量。
实例(2):修改存储过程并执行
1 alter Procedure Pro 2 @SID int = 2, 3 @SName varchar(10) = '%' 4 as 5 begin 6 select * from test 7 where Sid=@SID 8 and @SType=SType 9 execute Pro 2,'admin'