成績單的sc
㈠ 創建一個存儲過程,給定某學生學號,要求查詢出該學生的姓名,所選課程名和成績.(SQL SERVER)
/*創建存儲過程*/
CREATE PROCEDURE proc_select--建立存儲過程
@Sno char(10) output,--輸入輸出參數
@Sname varchar(20) out,--輸出參數
@Cno char(4) out,--輸出參數
@grade tinyint out--輸出參數
AS
SELECT @Sname=Sname,@Sno=Student.Sno,@Cno=cno,@grade=grade --select裡面寫輸出參數
FROM Student,SC --從學生表,選修表中查詢
where @Sno=Student.Sno--where裡面寫輸入參數
/*根據給定學號查詢*/
CREATE PROC proc_lab4 --存儲過程中含有游標
@Sno char(10)
as
declare @ssno char(10),@ssname char(20),@ccname char(20),@scg int--聲明四個變數
declare cursor_s cursor--聲明游標
for
select Student.Sno,Sname,Cname,grade
from Student,Course,SC--從三個表中選擇學號、姓名、課程名、成績
where Student.Sno=SC.Sno and Course.Cno=SC.Cno and Sname=@Sname;--連接
open cursor_s--打開游標
fetch next from cursor_s into @ssno,@ssname,@ccname,@scg
while @@fetch_status=0
begin
print @ssno+@ssname+@ccname+convert(char(10),@scg)
fetch next from cursor_s into @ssno,@ssname,@ccname,@scg
end
close cursor_s--關閉游標
deallocate cursor_s--釋放游標
exec proc_lab4 '201215121'
--只帶輸入參數
CREATE PROC p2
@sno char(10)
as
select Student.Sno,Sname,Cname,grade
from Student,SC,Course
where Student.Sno=SC.Sno and SC.Cno=Course.Cno
and Sname=@sname
(1)成績單的sc擴展閱讀:
創建存儲過程基本語法
create procere sp_name
@[參數名] [類型],@[參數名] [類型]
as
begin
.........
end
以上格式還可以簡寫成:
create proc sp_name
@[參數名] [類型],@[參數名] [類型]
as
begin
.........
end
/*註:「sp_name」為需要創建的存儲過程的名字,該名字不可以以阿拉伯數字開頭*/
㈡ 8.創建一個存儲過程,查詢某個學生某門課程的考試成績(學生名和課程名為輸入參數),要求顯示姓名,課名和
create proc 取一個過程名 @學生名 char(數值),@課程名 char(數值)
as
select @學生名 @課程名 成績名
from 該表名
where 該表學生名欄位=@學生名 and 該表課程名欄位=@課程名
go
exec 剛取得那個過程名 『隨便取一個學生名驗證』,『隨便取一個課程名驗證』