数据库

来源:互联网 发布:深信服上网行为js 编辑:程序博客网 时间:2024/06/05 22:54
Course表中增加一门课程,若已存在该课程即退出;若不存在即为某个指定系的学生增加选修这门课程,返回选修人数。

--Drop procedure Insert_Course ;

CREATE PROCEDURE Insert_Course 
--设置参数
--新添加课程的课程号
@Cno_New INT,
--新添加的课程的名字
@CName_New CHAR(20),
--新添加的课程的先行课、
@Cpno_New INT = 0,
--新添加的课程的学分
@Ccredit_New INT = 0,
--某个指定的系
@TSdept CHAR(20),
--有多少人增加了这门课程(修改的人数)
@TNumber INT OUTPUT,
--看是否有这门课,0表示没有,其他表示有
@N INT = 0
AS
--看有没有这门课
SELECT @N = COUNT(*) FROM Course WHERE Cname =@CName_New
IF (@N = 1)   --说明有这门课
PRINT 'FAIL'
ELSE --如果没有这门课
BEGIN--IF的开始
--在Course表中插入这门课
INSERT INTO Course(Cno, Cname, Cpno,Ccredit) 
VALUES(@Cno_New, @CName_New, @Cpno_New, @Ccredit_New );
--在SC表中插入相关的选课内容
INSERT INTO SC(Sno, Cno)  
SELECT Sno,@Cno_New FROM Student WHERE Sdept = @TSdept; 

SELECT @TNumber = COUNT(*) FROM Student WHERE Sdept = @TSdept; 
PRINT @TNumber;  
END --IF的结束

--调用存储过程
DECLARE @TNumber INT
EXEC Insert_Course 9,'计算机组成原理',2,4,'CS',2,@TNumber

0 0
原创粉丝点击