创建存储过程如下:
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
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)创建一个触发器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
最后那个 '@name' 改为 @name
alter trigger trig_update on 学生表
after update
as
select *from 学生表
print 'the change recond is '+convert(varchar(3),@@rowcount)+'row.'
go 为什么不现实更改的行我不清楚,不过这么写就算显示也是显示的学生表的行数。
@@ROWCOUNT
返回受上一语句影响的行数。