sql 触发器 if条件判断

customer表中有一列integral,我想当integral列大于50小于200时,lev为1,integral大于200小于500时,lev为2,大于500时lev为3
我编了一个触发器,可是总提示出错,我把我的源码提供出来,希望万能的百度帮我解决
create trigger lev
on customer
for update
as
if integral>50 and integral<200
begin
update customer
set lev=1
end

else if integral>200 and integral<500
begin
update customer
set lev=2
end

else integral>500
begin
update customer
set lev=3
end

 

解决方法代码:

不知道是 Oracle 还是 SQL Server

如果是 Oracle , 基本上是用   fei07100107  那种的用法

如果是 SQL Server

那么需要定义几个变量。

create trigger lev
on customer
for update
as
  DECLARE
    @NewIntegral  INT;
BEGIN
 
  -- 取得 本次 更新的 integral
  -- 如果一条语句,更新很多条记录的,这里要用游标处理。
 
  SELECT @NewIntegral = integral FROM INSERTED
 
 
  -- 如果这里不是更新全部表的,
  -- 那么麻烦上面再多定义一个 变量,
  -- 从 INSERTED 里面,取得 主键, 下面这里加 WHERE 条件。
  if @NewIntegral>50 and @NewIntegral<200
  begin
    update customer
    set lev=1
  end

  else if @NewIntegral>200 and @NewIntegral<500
  begin
    update customer
    set lev=2
  end

  else @NewIntegral>500
    begin
    update customer
    set lev=3
  end
END

转载于:https://www.cnblogs.com/activities/archive/2012/06/06/2537605.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值