use stuDB
go
--检查是否存在:存储过程存放在系统表sysobjects中
if exists (select * from sysobjects where name='proc_stu')
drop procedure proc_stu
go
--创建存储过程
create procedure proc_stu
@writtenPass int, --输入参数:笔试及格线
@labPass int, --输入参数:机试及格线
as
  print '--------------------------------------'
  print '        参加本次考试没有通过的学员:'
  select stuName,stuInfo.stuNo,writtenExam,labExam from stuInfo
inner join stuMarks on stuInfo.stuNo=stuMarks.stuNo
where writtenExam<@writtenPass or labExam<labPass
go
--调用存储过程
--假定本次考试机试偏难,机试及格线定为55分,笔试及格线定为60分
exec proc_stu 60,55
错误描述
消息 156,级别 15,状态 1,过程 proc_stu,第 5 行
关键字 'as' 附近有语法错误。
消息 2812,级别 16,状态 62,第 3 行
找不到存储过程 'proc_stu'。
我才学存储过程好多还不明白,谢谢大家了

解决方案 »

  1.   

    @labPass int,    --输入参数:机试及格线
    这一行多了个逗号
      

  2.   

    create procedure proc_stu
        @writtenPass int,    --输入参数:笔试及格线
        @labPass int    --输入参数:机试及格线
        as
          print '--------------------------------------'
          print '        参加本次考试没有通过的学员:'
          select stuName,stuInfo.stuNo,writtenExam,labExam from stuInfo
            inner join stuMarks on stuInfo.stuNo=stuMarks.stuNo
                where writtenExam<@writtenPass or labExam<labPass
    go