触发器写法

liyuyu 2008-04-02 11:37:04
有表A(A_1,A_2) 表B(B_1,B_2)
假设update前A_1叫old_A_1,old_A_2
假设update后A_1叫new_A_1,new_A_2
if old_A_2 ='UP' then
UPdate B set B_2='UUUUU' where old_A_1=B_1;

if old_A_2 ='DOWN' then
UPdate B set B_2='DDDDD' where old_A_1=B_1;
if new_A_2='UP' then
UPdate B set B_2='FFFF' where new_A_1=B_1;

if new_A_2='DOWN' then
UPdate B set B_2='GGGG' where new_A_1=B_1;
...全文
128 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wh110 2008-04-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bqb 的回复:]
SQL codecreate trigger t_update on A
after update
as
begin
update B set B.B_2=case when A.A_2='UP' then 'UUUUU'
when A.A_2='DOWN' then 'DDDDD'
when A.A_2='UP' and B.B_2='UUUUU' then 'FFFF'
when A.A_2='DOWN' and B.B_2='DDDDD' then 'GGGG'
end
from B,A
where B.B_1=A.A_1
end
[/Quote]
liyuyu 2008-04-02
  • 打赏
  • 举报
回复
谢谢bqb,非常谢谢
bqb 2008-04-02
  • 打赏
  • 举报
回复
create trigger t_update on A 
after update
as
begin
update B set B.B_2=case when A.A_2='UP' then 'UUUUU'
when A.A_2='DOWN' then 'DDDDD'
when A.A_2='UP' and B.B_2='UUUUU' then 'FFFF'
when A.A_2='DOWN' and B.B_2='DDDDD' then 'GGGG'
end
from B,A
where B.B_1=A.A_1
end
bqb 2008-04-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 liyuyu 的帖子:]
有表A(A_1,A_2) 表B(B_1,B_2)
假设update前A_1叫old_A_1,old_A_2
假设update后A_1叫new_A_1,new_A_2
if old_A_2 ='UP' then
UPdate B set B_2='UUUUU' where old_A_1=B_1;

if old_A_2 ='DOWN' then
UPdate B set B_2='DDDDD' where old_A_1=B_1;
if new_A_2='UP' then
UPdate B set B_2='FFFF' where new_A_1=B_1;

if new_A_2='DOWN' then
UPdate B set B_2='GGGG' where new_A_…
[/Quote]
create trigger t_update on A 
after update
as
begin
update B set B.B_2=case when i.A_2='UP' then 'UUUUU'
when i.A_2='DOWN' then 'DDDDD'
when i.A_2='UP' and B.B_2='UUUUU' then 'FFFF'
when i.A_2='DOWN' and B.B_2='DDDDD' then 'GGGG'
end
from B,inserted i
where B.B_1=i.A_1
end
青锋-SS 2008-04-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sdhylj 的回复:]
create trigger t_1
on a
for update
as
update b set b_2='UUUUU' from a where a_2='UP' and A_1=B_1
UPdate B set B_2='DDDDD' from a where A_2 ='DOWN' and A_1=B_1;
UPdate B set B_2='GGGG' from inserted i where i.A_2='DOWN' and i.A_1=B_1


[/Quote]
青锋-SS 2008-04-02
  • 打赏
  • 举报
回复
create trigger t_1
on a
for update
as
update b set b_2='UUUUU' where a_2='UP' and A_1=B_1
UPdate B set B_2='DDDDD' where A_2 ='DOWN' and old_A_1=B_1;
UPdate B set B_2='GGGG' from inserted i where i.A_2='DOWN' and i.A_1=B_1

-狙击手- 2008-04-02
  • 打赏
  • 举报
回复
你这逻辑有点问题吧?
wangxuelid 2008-04-02
  • 打赏
  • 举报
回复
if new_A_2='DOWN' then --取掉then,
UPdate B set B_2='GGGG' where new_A_1=B_1;
fuda_1985 2008-04-02
  • 打赏
  • 举报
回复
学习,
正好不会写触发器~~

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧