1 无参数
创建:
[USE <数据库名>
GO]
CREATE PROC <过程名>
AS
<动作集合>;
执行:
EXEC <过程名>;
**例:**在TS数据库中创建存储过程P实现如下功能:查询学生所选课程的学分及成绩,包括学号、姓名、课程号、课程名、学分、成绩。
UES TS
GO
CREATE PROC P
AS
SELECT Student.Sno,Sname,Course.Cno,Cname,Ccredit,Grade
FROM Student,Course,SC
WHERE Student.Sno=SC.Sno AND Course.Cno=SC.Cno;
执行:
EXEC P;
2 有参数
创建:
[UES <数据库名>
GO]
GREATE PROC <过程名> @X1 <数据类型> [OUT][@X2 <数据类型> [OUT] …]
AS
BEGIN
[DECLARE @X3 <数据类型>] //声明新的变量
<动作集合>
END
执行:
DECLARE @X4 <与上面标有OUT的变量相同的数据类型>
EXEC <过程名> @X4 OUTPUT
SELECT @X4;
**例:**编写带参数的存储过程,根据传入的课程名称统计该课程的平均成绩。
CREATE PROC PJ @Cname CHAR(20),@avg INT OUT
AS
BEGIN
@avg=
(
SELECT AVG(Grade)
FROM SC,Course
WHERE SC.Cno=Course.Cno AND Cname=@Cname
)
END;