再求一触发器代码

liyuyu 2008-04-02 10:42:24
有表A(A_1,A_2) 表B(B_1,B_2)
如果update A 表
如果没有更新前的A_2值为UP,就在没有更新前A_1=B_1处设置B_2='UP'
如果没有更新前的A_2值为DOWN ,就是没有更新前的A_1=B_1处设置B_2='DOWN'
如果更新后的A_2值为Up,就更新在更新后的A_1=B_1处设置B_2='UP'
如果更新后的A_2值为DOWN,就更新在更新后的A_1=B_1处设置B_2='DOWN'
如果delete A 表
如果没有更新前的A_2值为UP,就在没有更新前A_1=B_1处设置B_2=''
如果没有更新前的A_2值为DOWN ,就是没有更新前的A_1=B_1处设置B_2='DOWN'


...全文
60 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
liyuyu 2008-04-02
解释一下:
有表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;


回复
utpcb 2008-04-02

发表于:2008-04-02 10:52:232楼 得分:0
SQL code
create trigger tri_A on A
for update
as
if update(A_1) and exists(select 1 from inserted i,deleted d where i.A_1=d.A_1 and isnull(i.A_2,'')<>isnull(d.A_2,''))
begin
update B
set B_2=i.A_2
from inserted i,deleted d
where B.b_1=i.A_1 and i.A_1=d.A_1 and isnull(i.A_2,'')<>isnull(d.A_2,'')
end
GO
create trigger trd_A on A
for delete
as
update B
set B_2=case d.A_2 when 'up' then '' else 'down' end
from deleted d
where B.A_1=d.B_1
GO



回复
wangxuelid 2008-04-02
dd
回复
gahade 2008-04-02
没测试.

楼主说得有点复杂,不知道我写得正不正确
回复
gahade 2008-04-02

create trigger tri_A on A
for update
as
if update(A_1) and exists(select 1 from inserted i,deleted d where i.A_1=d.A_1 and isnull(i.A_2,'')<>isnull(d.A_2,''))
begin
update B
set B_2=i.A_2
from inserted i,deleted d
where B.b_1=i.A_1 and i.A_1=d.A_1 and isnull(i.A_2,'')<>isnull(d.A_2,'')
end
GO
create trigger trd_A on A
for delete
as
update B
set B_2=case d.A_2 when 'up' then '' else 'down' end
from deleted d
where B.A_1=d.B_1
GO
回复
-狙击手- 2008-04-02
用点数据说明 一下呀
回复
flairsky 2008-04-02
你能不能给点实测数据,我写的和上面的差不多
回复
相关推荐
基于java的企业人事管理系统设计--软件工程课程设计(含源码与论文设计).rar 1 引言 4 1.1 课程设计目标 4 1.2 编程工具(编程环境)介绍 4 1.3 实施时间及主要实施步骤 4 2 需分析 5 3 系统总体设计 6 4 数据库设计 6 5 主要功能模块的设计与实现 10 5.1 功能模块1详细设计(综合查询员工信息)..........................................................10 5.1.1 详细设计.......................................................................................................10 5.1.2 算法流程........................................................................................................15 5.1.3 界面设计及测试结果.....................................................................................15 6 调试分析 15 7 用户手册 16 8 测试结果 17 8.1 员工信息的添加...................................................................................................17 8.2 员工信息的修改...................................................................................................17 8.3 员工信息的删除...................................................................................................18 8.4 员工信息的综合查询...........................................................................................18 8.5 员工信息按性别统计的结果................................................................................19 8.6 员工信息按状态统计的结果...............................................................................19 8.7 员工信息按职称统计的结果................................................................................20 9 结论 20 10 参考文献 20
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-04-02 10:42
社区公告
暂无公告