问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

sql 触发器 if

发布网友 发布时间:2024-10-21 07:01

我来回答

4个回答

热心网友 时间:2024-11-22 17:35

不知道是 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

热心网友 时间:2024-11-22 17:35

你这错的地方也太多了
1.create trigger lev on customer for update 这样写:
create trigger lev after update on customer
2.if else 语句也不对,else if 不能分开,应该写为 elsif
3.update customer set lev=2没写where语句,这样不就把数据库都更新了一遍,应该加上一个where来区分每一条记录。
4.看一下触发器里面 关于 new和old关键字的用法,很好用的。

看一下下面这个示例:
create or replace trigger tr_save_change
after insert or update or delete on a
for each row
begin
case when inserting then
insert into b(id,name,update_date,flag)
values(:new.id,:new.name,sysdate,0);
when updating then
update b set name=:new.name,update_date=sysdate,flag=1 where id=:old.id;
when deleting then
delete from b where id=:old.id;
end case;
end;

热心网友 时间:2024-11-22 17:36

将update customer 删除即可。

热心网友 时间:2024-11-22 17:36

create trigger lev
on customer
for update
as
if update(integral)
begin
update customer
set lev=1 from customer c,inserted i where c.主键=i.主键 and i.integral>50 and i.integral<=200

update customer
set lev=2 from customer c,inserted i where c.主键=i.主键 and i.integral>200 and i.integral<=500

update customer
set lev=3 from customer c,inserted i where c.主键=i.主键 and i.integral>500
end
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
上海什么酒店最高大上 业精于勤荒于嬉。行成于思毁于随 ""业精于勤,荒于嬉,行成于思,毁于随"是什么意思?解释的好点 文才神摆在阳台东南面朝窗户好吗 高锰酸钾鱼缸要泡多久合适 高锰酸钾泡鱼缸的时间介绍 高锰酸钾浸盆要多久 高锰酸钾浸泡需要的时间是多久? 高锰酸钾要泡多久合适 高锰酸钾要泡多长时间合适 天气炎热,长途车下面放行李的地方放活的黄鳝会死吗 15款明锐1.4 t烧机油吗 ...年斯柯达明锐换了四个点火线圈四个火花塞油耗增大两升左右为什么... ...* from fan where id = ‘a1’ for update请问这个for update在这... 房地产信息网深圳地区 江苏宿迁房产网网站简介 宁阳房产网网站介绍 卖商铺的网站有哪些 我的中国银行信用卡额度4千,愈期4个月了,银行催我,才我还了4千,还有13... 老师对孩子的作文写不好有什么态度 邮政信用卡逾期还没还,银行打电话让还最低额度,如果我全额还了,还能全... 车牌辽GVE600好吗? 车牌号川VE7630? 鲁VE350V 号怎么样 9029ve是什么意思? 我是中学一年级的学生,一直都很纠结作文,每次都是让哥哥给我搜电脑,我... 学校老师让学作文,可是孩子开学才上2年级,纠结啊 迅雷会员618大促!超级会员15个月169元,迅雷白金会员和超级会员的区别... 就“家长帮孩子检查作业利大还是弊大”,辩论的要点是什么 上班族脱发怎么预防 三个技巧留住你的美发 冬季防脱发的小技巧有哪些? 刘家湾赶海园赶海活动 株洲经世龙城以后会通公交车到河东吗 闲鱼的官网是多少? 鲁d是什么意思 鲁D车牌属于哪个城市? 梦幻109WM属性问题,高手进 rf是哪个国家车牌 Htc touch pro 简体中文版 wm6.1 GPRS 设置问题 浙f,297rf车牌号好不好 白虾属于什么虾 常见的白虾品种有哪些 汇编中 段地址:偏移地址 10000H与0FFF:10所指的内存相同 怎么理解 菜鸟求教,汇编中段地址问题 车牌号是8789E好还是CX933好?我父母正激烈讨论 闽c586cx车牌号码是什么意思 黑ecx180查询违章停车 我昨天新买的手机今天可以退吗 昨天买的苹果手机今天能退吗 昨天买的手机今天可以退款吗 ANSYS的功能 如何正确处理职场攀比心理? 如何正确利用职场攀比效应促进个人进步? 攀比效应的积极与消极影响是什么?