2. 带参数的存储过程。 1) 定义存储过程Query_Stu, 功能是:接收输入的学生姓名、课程名,从XSCJ数据库的3个表中查询该学生的该课程成绩。 2) 执行存储过程Query_Stu 3) 定义存储过程Proc_Student,功能是:接收输入的学号、姓名、专业名、性别、出生时间、总学分、备注字段值。在Student表中查询该学号是否存在。若不存在,则向Student表中插入以参数值为各字段值的新记录;若存在,则将该记录的姓名、专业名、性别、出生时间、总学分、备注字段值修改为输入的各参数值。 4) 执行存储过程Proc_Student
时间: 2023-12-30 21:04:14 浏览: 86
1) 定义存储过程Query_Stu:
```
CREATE PROCEDURE Query_Stu
@Name NVARCHAR(20),
@Course NVARCHAR(20)
AS
BEGIN
SELECT S.学号, S.姓名, S.专业名, C.课程名, SC.成绩
FROM Student S, Course C, StuCourse SC
WHERE S.学号 = SC.学号 AND C.课程号 = SC.课程号 AND S.姓名 = @Name AND C.课程名 = @Course;
END
```
2) 执行存储过程Query_Stu:
```
EXEC Query_Stu '张三', '数学';
```
3) 定义存储过程Proc_Student:
```
CREATE PROCEDURE Proc_Student
@学号 INT,
@姓名 NVARCHAR(20),
@专业名 NVARCHAR(20),
@性别 NVARCHAR(2),
@出生时间 DATE,
@总学分 INT,
@备注 NVARCHAR(50)
AS
BEGIN
IF EXISTS (SELECT * FROM Student WHERE 学号 = @学号)
UPDATE Student SET 姓名 = @姓名, 专业名 = @专业名, 性别 = @性别, 出生时间 = @出生时间, 总学分 = @总学分, 备注 = @备注 WHERE 学号 = @学号
ELSE
INSERT INTO Student (学号, 姓名, 专业名, 性别, 出生时间, 总学分, 备注) VALUES (@学号, @姓名, @专业名, @性别, @出生时间, @总学分, @备注)
END
```
4) 执行存储过程Proc_Student:
```
EXEC Proc_Student 001, '张三', '计算机科学与技术', '男', '2000-01-01', 120, '优秀学生';
```
阅读全文