sql serve建立儲存過程,查詢指定學生的學號 姓名 課

2021-04-14 11:16:43 字數 2563 閱讀 7986

1樓:古舟蓑笠翁

if (exists (select * from sys.objects where name = 'proc_stu'))

drop proc proc_stu

gocreate proc proc_stu(@sname varchar(8) ='張%')

asselect student.sno,sname,lname,grade

from student left join sc on student.sno=sc.sno

left join lesson on sc.lno=lesson.lno

where sname like @snamego

建立一個儲存過程,給定某學生學號,要求查詢出該學生的姓名,所選課程名和成績.(sql server)

2樓:莫道無情

/*建立儲存過程*/

create procedure proc_select--建立儲存過程

@sno char(10) output,--輸入輸出引數

@sname varchar(20) out,--輸出引數

@cno char(4) out,--輸出引數

@grade tinyint out--輸出引數

asselect @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)

asdeclare @ssno char(10),@ssname char(20),@ccname char(20),@scg int--宣告四個變數

declare cursor_s cursor--宣告遊標

forselect 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

endclose cursor_s--關閉遊標

deallocate cursor_s--釋放遊標

exec proc_lab4 '201215121'

--只帶輸入引數

create proc p2

@sno char(10)

asselect student.sno,sname,cname,grade

from student,sc,course

where student.sno=sc.sno and sc.cno=course.cno

and sname=@sname

擴充套件資料:

建立儲存過程基本語法

create procedure sp_name

@[引數名] [型別],@[引數名] [型別]

asbegin

.........

end以上格式還可以簡寫成:

create proc sp_name

@[引數名] [型別],@[引數名] [型別]

asbegin

.........

end/*注:「sp_name」為需要建立的儲存過程的名字,該名字不可以以阿拉伯數字開頭*/

3樓:匿名使用者

select name,course,grades from student s

left join course c on c.sid = s.sid

left join achievement a on a.cid = c.cid

where s.id = 10

4樓:匿名使用者

建立過程:

create procedure proc_stu@sno nchar(9)

asselect sname,cname,gradefrom s join sc on s.sno=sc.sno join c on sc.cno=c.cno

where sno=@sno

呼叫過程:

declare @sno nchar(10)set @sno='161343001'

exec proc_stu @sno

sqlserver怎麼建立儲存過程

1 建立語法 create proc procedure pro name 預設值 output 預設值 output as sql statements 2 建立不帶引數儲存過程 建立儲存過程 if exists select from sys.objects where name proc ge...

sql中建立儲存過程,該儲存過程計算及格率和優秀率 平均分超80分)

select convert varchar 10 sum case when html sql 2 60 and html sql 2 80 then 1 else 0 end 100.0 stucount as 及格率,convert varchar 10 sum case when html ...

db2 儲存過程呼叫 儲存過程,DB2 儲存過程呼叫 儲存過程

給你一個連結,自己學習吧。個人用過幾個月的db2,覺得db2的儲存過程 除錯最麻煩了。如何執行db2儲存過程 1 db2 create database 資料庫名 建立資料庫 2 db2 connect to 資料庫名 user 使用者名稱 using 使用者密碼 連線資料庫 3 db2 tvf o...