存储过程是SQL语句和控制流语句的预编译集合,可以有一个程序通过一个调用执行,允许声明变量,逻辑控制流语句以及其它强大的编程功能
系统存储过程存储在Master数据库中
sp_databases 列出服务器上的所有数据库
sp_helpdb 报告有关指定数据库或所有数据库的信息
sp_renamedb 'jobs' , ' jobs1' 更改数据库名称(单用户访问)
sp_tables 当掐数据库中可查询对象的列表
sp_columns jobs 查看表Jobs中列的信息
sp_helpconstraint jobs 查看表jobs中的约束
sp_helpindex jobs 查看表jobs中的索引
sp_helptext 'view_stu' 查看视图view_stu中的语句文本
sp_stored_procedures 返回当前数据库中的存储过程列表
问题:使用存储过程查询本版平均分并且查询本次考试没有通过的学员
if exists (select * from sysobjects where name = 'proc_stu') drop proc proc_stu go create proc proc_stu as declare @writtenAvg float ,@labAvg float select @writtenAvg=avg(convert(int, writtenExam)) ,@labAvg=avg(convert(int, LabExam)) from stuMarks print '笔试平均分' + convert(varchar(5),@writtenAvg) print '机试平均分' + convert(varchar(5),@labAvg) if(@writtenAvg>70 and @labAvg>70) print '本班成绩优秀' else print '本班成绩较差' print '==================================================================================' print '参加本次考试没有通过的学员' select stuinfo.stuName,stuinfo.stuNo ,stuMarks.writtenExam,stuMarks.LabExam from stuinfo inner join stuMarks on stuMarks.stuNo=stuinfo.stuNo where writtenExam<60 or LabExam<60 exec proc_stu
笔试平均分79 机试平均分76 本班成绩优秀 ================================================================================== 参加本次考试没有通过的学员 stuName stuNo writtenExam LabExam ---------- ---------- ----------- ---------- 李斯文 s25303 90 58
(所影响的行数为 1 行)