SQL Server数据库存储过程

来源:互联网 发布:女娲矩阵持续时间 编辑:程序博客网 时间:2024/05/05 00:09

定义存储过程的语法
CREATE  PROC[EDURE]  存储过程名
@参数1  数据类型 = 默认值 OUTPUT,
… … ,
@参数n  数据类型 = 默认值 OUTPUT
AS
SQL语句
GO
存储过程的参数
和其他编程语言的方法一样,参数可选
参数分为输入参数、输出参数
输入参数允许有默认值

例如 创建存储过程,查询Java Logic最近一次考试平均分以及未通过考试的学员名单
以下为存储过程定义
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'usp_GetAverageResult' ) --检测是否存在
DROP PROCEDURE  usp_GetAverageResult
GO

CREATE PROCEDURE usp_GetAverageResult --创建存储过程
AS
DECLARE @subjectNo int  --课程编号
DECLARE @date datetime  --最近考试时间

SELECT @subjectNo=subjectNo FROM Subject WHERE SubjectName='java logic'

SELECT  @date=max(ExamDate) FROM Result INNER JOIN  Subject
ON Result.SubjectNo=Subject.SubjectNo
WHERE Result.SubjectNo=@subjectNo

DECLARE @avg  decimal(18,2)      --平均分变量
SELECT @avg=AVG(StudentResult)
FROM Result WHERE ExamDate=@date and SubjectNo=@subjectNo

PRINT '平均分:'+CONVERT(varchar(5),@avg)

IF (@avg>70)
PRINT '考试成绩:优秀'
ELSE
PRINT '考试成绩:较差'

PRINT '--------------------------------------------------'
PRINT '参加本次考试没有通过的学员:'
SELECT StudentName,Student.StudentNo,StudentResult FROM  Student
INNER JOIN Result ON Student.StudentNo=Result.StudentNo
WHERE StudentResult<60 AND ExamDate=@date and SubjectNo=@subjectNo
GO

GO
调用存储过程
EXEC usp_GetAverageResult

本文链接:http://www.snowdi.com/712.html → 转载请注明文章出自雪頔网
原创粉丝点击