存储过程和触发器

1、创建一个名为score_sc的触发器,要求输入的成绩必须在0到100之间

create trigger score_sc  --trigger触发器的标志,名字为score_sc的触发器

on sc                    --作用在sc表之上

for insert,update        --操作范围是插入和更新

as declare @score int       --declare用于声明变量 

@score声明的变量,int为声明类型 begin                    --每一个begin要对应一个end否则会报错,本触发器三个begin和三个end

select @score = grade from inserted --声明变量等于grade,inserted为查如何更新的标志符

if @score not between 0 and 100     --触发器的条件

begin rollback                            --回滚

print '成绩输入不合法,请重新输入'

end

else

begin print '操作成功!'

end

end   

2、创建一个存储过程根据课程名查询选修这门课的人数                            

 create proc ssc_3          --procedure为存储过程的标志,ssc_3为存储过程的名字

@cnumber char(20),@ccount int output   --声明一个变量@cname 类型char,变量@ccount,类型为int,output为输出

as                                     --char的长度如果不够的话查询出来的结果会是0

select @ccount=count(*) from sc,course

where sc.cno=course.cno and course.cname=@cnumber  --为声明的变量赋值 go                                 

以下语句执行创建的存储过程,下面三个语句要一起执行,否则无法得到结果

declare @ccount int            

exec ssc_3 '数据库',@ccount output  --exec为执行的标识符,ssc_6为存储过程的名字,数据库为变量@ccount的值

select '选修人数是:',@ccount

转载于:https://www.cnblogs.com/goforitjava/p/3478505.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值