码迷,mamicode.com
首页 > 数据库 > 详细

SQL语句(十八)—— 存储过程

时间:2017-04-17 09:55:32      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:入参   查询   cut   pre   line   list   系统   创建   查看属性   

存储过程

  1. 系统存储过程

  2. 自定义存储过程

  3. 扩展存储过程

一、创建存储过程

  1. 创建存储过程

--例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

 2. 存储过程调用

USE SU
GO
Exec SelProc
Exec CountProc

 3. 创建带输入参数的存储过程

--例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. 创建带输出参数的存储过程(执行时候,需要声明!!!!!!)

--例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语句(十八)—— 存储过程

标签:入参   查询   cut   pre   line   list   系统   创建   查看属性   

原文地址:http://www.cnblogs.com/douzujun/p/6721083.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!