快速业务通道

面试准备之SQL 6 —— 存储过程

作者 佚名技术 来源 数据库编程 浏览 发布时间 2012-03-21
ss=55
exec proc_stu @writtenPass=60,@labPass=55
exec proc_stu @writtenPass=60,55--这一行会报错 :必须传递参数 2,并以 ''@name = value'' 的形式传递后续的参数。
--  一旦使用了 ''@name = value'' 形式之后,所有后续的参数就必须以 ''@name = value'' 的形式传递

 

(3.)带输出参数的存储过程

代码
USE stuDB
GO
/*---检测是否存在:存储过程存放在系统表sysobjects中---*/
IF EXISTS (SELECT * FROM sysobjects WHERE name = ''proc_stu'' )
  DROP PROCEDURE  proc_stu
GO
/*---创建存储过程----*/
CREATE PROCEDURE proc_stu
  @notpassSum int OUTPUT, --OUTPUT关键字,否则视为输入参数
  @writtenPass int=60,  --默认参数放后
  @labPass int=60       --默认参数放后
  AS
    print ''笔试及格线:''+convert(varchar(5),@writtenPass)
       + ''   机试及格线:''+convert(varchar(5),@labPass)
    print ''--------------------------------------------------''
    print ''           参加本次考试没有通过的学员:''
    SELECT stuName,stuInfo.stuNo,writtenExam,labExam FROM  stuInfo
      INNER JOIN stuMarks ON stuInfo.stuNo=stuMarks.stuNo
         WHERE writtenExam<@writtenPass OR labExam<@labPass
    /*--统计并返回没有通过考试的学员人数--*/
    SELECT @notpassSum=COUNT(stuNo)FROM stuMarks
      WHERE writtenExam<@writtenPass OR labExam<@labPass
   
GO

/*---调用存储过程----*/
DECLARE @sum int
EXEC proc_stu @sum OUTPUT ,64   --机试及格线采用默认值:笔试及格线64分,机试及格线60分。
print ''--------------------------------------------------''
IF @sum>=3
  print ''未通过人数:''+convert(varchar(5),@sum)+ ''人,超过60%,及格分数线还应下调''
ELSE
  print ''未通过人数:''+convert(varchar(5),@sum)+ ''人,已控制在60%以下,及格分数线适中''
GO


 

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号