SQL语句(十八)—— 存储过程
Posted 豆子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语句(十八)—— 存储过程相关的知识,希望对你有一定的参考价值。
存储过程
系统存储过程
自定义存储过程
扩展存储过程
一、创建存储过程
-
创建存储过程
--例1
USE SU
GO
Create Procedure SelProc
AS
Select *
From SC
GO
--例2
USE SU
GO
Create Procedure CountProc
AS
Select Count(*) AS 总数
From Course
Go
USE SU
GO
Exec SelProc
Exec CountProc
--例1 创建 带输入参数 的存储过程
USE SU
GO
Create Procedure QueryById @Sno varchar(10)
AS
Select *
from SC
Where Sno = @Sno
GO
--执行
GO
Execute QueryById ‘1513032087‘
Execute QueryById @Sno = ‘1513032087‘
--创建 带默认参数 的存储过程
USE SU
GO
create Procedure QueryById2 @Sno varchar(10) = ‘1513032087‘
AS
Select *
From SC
where Sno = @Sno
GO
--执行(可以不带参数, 因为有默认参数)
EXecute QueryById2
--例4
Use SU
GO
Create Procedure QueryById3
@Sno varchar(10) = ‘1513032087‘,
@Cnocount INT OUTPUT --输出参数,Sno学号选的课程数
AS
Select @Cnocount = Count(SC.Cno)
From SC, Student
where SC.Sno = Student.Sno and SC.Sno = @Sno
GO
--执行
--必须先声明!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Declare @Sno varchar(10) = ‘1513032087‘;
Declare @Cnocount int; --声明之后再执行
EXEC QueryById3 @Sno, @Cnocount OUTPUT
Select ‘学号为‘ + @Sno + ‘选了‘ + Ltrim(STR(@Cnocount)) + ‘门课‘ --字符串还需要处理一下
GO
1. 修改存储过程
------------管理存储过程------------------
--修改存储过程
exec CountProc --查询
GO
Alter Procedure CountProc
AS
select Sno, COUNT(*) AS 总数
From SC
Group By Sno
--查看属性
GO
select OBJECT_DEFINITION(OBJECT_ID(‘QueryById‘)); --select OBJECT_DEFINITION(OBJECT_ID(‘存储过程名‘));
Exec sp_help QueryById
Exec sp_helptext QueryById
--删除操作
GO
DROP procedure 存储过程
以上是关于SQL语句(十八)—— 存储过程的主要内容,如果未能解决你的问题,请参考以下文章