创建存储过程如下:
create proc dbo.my_procstatus @name varchar(40) 
as 
if(@name is  NULL)
return 55 
else if not exists(select * from 学生表 where 姓名=@name)
return -155
select 学号,课程号 from 成绩表 where 学号 in(select 学号 from 学生表 where 姓名='@name')
return    
执行如下:
declare @information int
exec @information=my_procstatus @name='李涛'
if @information=55
print '没有输入名字!!'
else if @information=-155
print '没找到!!'      显示结果却没有,里面有李涛的记录
单单
select 学号,课程号 from 成绩表 where 学号 in(select 学号 from 学生表 where 姓名='李涛')
却能显示出来.20026002 C803 表的信息如下
学生表
学号 姓名 性别 年龄 所在院系 班级 入学日期
20009001 葛文卿 女         22 国际贸易 国贸2班 2000-8-29
20014019 郑秀丽 女         21 会计学 会计1班 2001-9-2
20023001 刘成铠 男         18 计算机 软件2班 2002-8-27
20023002 沈香娜 女         18 计算机 软件2班 2002-8-27
20023003 肖一竹 女         19 计算机 软件2班 2002-8-27
20026002 李涛 女         19 电子学 电子1班 2002-8-27
20026003 李涛 男         19 计算机 软件1班 2002-8-27
成绩表
学号 课程号 成绩 学分
20023001 C801 98 4
20023001 C802 99 3
20023002 C804 70 4
20026001 C801 85 4
20026002 C803 82 4

解决方案 »

  1.   

    还有一个触发器问题
    (1)创建一个触发器trig_update,返回对“学生表”进行更新操作后,被更新的记录条数
            create trigger trig_update on 学生表
    after update 
    as
    print 'the change recond is '+convert(varchar(3),@@rowcount)+'row.'
    go       
    (3)修改触发器trig_update,除返回被更新的记录条数外,再返回学生的所有基本信息
            alter trigger trig_update on 学生表
    after update 
    as
    select *from 学生表
    print 'the change recond is '+convert(varchar(3),@@rowcount)+'row.'
    go  
    可是执行时没有返回修改的行数,只显示select 内容
            update 学生表
    set 年龄=18
    where 年龄=18
    go        
       
      

  2.   

    select 学号,课程号 from 成绩表 where 学号 in(select 学号 from 学生表 where 姓名='@name')
    最后那个  '@name' 改为  @name
      

  3.   

    print  改为 select 即可
      

  4.   

    第2个改为select后有显示,但显示结果错误........
      

  5.   

    (3)修改触发器trig_update,除返回被更新的记录条数外,再返回学生的所有基本信息
            alter trigger trig_update on 学生表
    after update 
    as
    select *from 学生表
    print 'the change recond is '+convert(varchar(3),@@rowcount)+'row.'
    go  为什么不现实更改的行我不清楚,不过这么写就算显示也是显示的学生表的行数。
    @@ROWCOUNT
    返回受上一语句影响的行数。