创建一个带有输入参数的储存过程,通过一个给定的学号,查询出学生所有选修的课程的成绩情况,要求字段包括“学号,姓名,课程名,成绩”。然后执行行该存储过程。而这三个表的名字分别是7score,7coures,7student,并且所用方法是游标
时间: 2023-12-03 20:42:39 浏览: 114
以下使用游标创建带有输入参数的存储过程,查询出指定学生所有选修课程的成绩情况:
```sql
CREATE PROCEDURE sp_GetStudentGrades
@StudentId INT
AS
BEGIN
DECLARE @StudentName NVARCHAR(50)
DECLARE @CourseName NVARCHAR(50)
DECLARE @Grade INT
DECLARE @StudentCursor CURSOR
SET @StudentCursor = CURSOR FOR
SELECT Name FROM 7student WHERE Id = @StudentId
OPEN @StudentCursor
FETCH NEXT FROM @StudentCursor INTO @StudentName
DECLARE @Result TABLE (StudentId INT, StudentName NVARCHAR(50), CourseName NVARCHAR(50), Grade INT)
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @CourseCursor CURSOR
SET @CourseCursor = CURSOR FOR
SELECT c.Name, s.Grade
FROM 7courses c
INNER JOIN 7score s ON c.Id = s.CourseId
WHERE s.StudentId = @StudentId
OPEN @CourseCursor
FETCH NEXT FROM @CourseCursor INTO @CourseName, @Grade
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO @Result (StudentId, StudentName, CourseName, Grade)
VALUES (@StudentId, @StudentName, @CourseName, @Grade)
FETCH NEXT FROM @CourseCursor INTO @CourseName, @Grade
END
CLOSE @CourseCursor
DEALLOCATE @CourseCursor
FETCH NEXT FROM @StudentCursor INTO @StudentName
END
CLOSE @StudentCursor
DEALLOCATE @StudentCursor
SELECT * FROM @Result
END
```
执行该存储过程的方法如下:
```sql
EXEC sp_GetStudentGrades 1 -- 传入指定学生的学号
```
注意,此存储过程使用了两个游标,一个用于查询学生姓名,另一个用于查询该学生选修的所有课程成绩。尽管游标在执行大型查询时可能会影响性能,但在这个简单的例子中,游标可以提供一种方便的方法来处理多个结果集。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pptx](https://img-home.csdnimg.cn/images/20241231044947.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)