表—:T_jgk,编号:BH;名称:MC;定额价:DEJ
表二:T_cltcl, 编号:C_bh,名称:C_name
表三:T_Dglj,编号:D_bh,名称:D_name,(表中的名称分为三种情况:分别以BB,BE,BF开头的),定额价:D_dj第一个触发器:编号相同的情况下,修改名称
要求1、:条件为:修改表一T_jgk中的名称,同时更新表二和表三中的名称,修改条件为判断BH是否相同
特殊情况:表三T_Dglj中的编号有的以A开头,有的以B开头,有的以C开头,先的去掉第一个A|B|C才能判断编号是否相同(注意:数据库表中不能去掉);
表三T_Dglj中的名称为特殊名称,修改时在修改后的名称前加一个字母‘B’。第二个触发器:编号相同的情况下,修改定额价
要求1、:条件为:修改表一T_jgk中的定额价,同时更新表三T_Dglj中的定额价,修改条件为判断BH是否相同(表三T_Dglj中的编号有的以A开头,有的以B开头,有的以C开头,先的去掉第一个A|B|C才能判断编号是否相同(注意:数据库表中不能去掉);)第三个触发器:修改编号
要求1、:条件为:修改表一T_jgk中的编号,同时更新表二T_cltcl中的编号及表三T_Dglj中的的编号(表三中的编号前面有一个字母“B”,判断时候先的去掉一个字母B,更新以后在更新后的编号前加一个字母‘B’,才是正确的编号显示格式)请大家帮忙想想,因为最多一百分,小弟会再给加分的!
表二:T_cltcl, 编号:C_bh,名称:C_name
表三:T_Dglj,编号:D_bh,名称:D_name,(表中的名称分为三种情况:分别以BB,BE,BF开头的),定额价:D_dj第一个触发器:编号相同的情况下,修改名称
要求1、:条件为:修改表一T_jgk中的名称,同时更新表二和表三中的名称,修改条件为判断BH是否相同
特殊情况:表三T_Dglj中的编号有的以A开头,有的以B开头,有的以C开头,先的去掉第一个A|B|C才能判断编号是否相同(注意:数据库表中不能去掉);
表三T_Dglj中的名称为特殊名称,修改时在修改后的名称前加一个字母‘B’。第二个触发器:编号相同的情况下,修改定额价
要求1、:条件为:修改表一T_jgk中的定额价,同时更新表三T_Dglj中的定额价,修改条件为判断BH是否相同(表三T_Dglj中的编号有的以A开头,有的以B开头,有的以C开头,先的去掉第一个A|B|C才能判断编号是否相同(注意:数据库表中不能去掉);)第三个触发器:修改编号
要求1、:条件为:修改表一T_jgk中的编号,同时更新表二T_cltcl中的编号及表三T_Dglj中的的编号(表三中的编号前面有一个字母“B”,判断时候先的去掉一个字母B,更新以后在更新后的编号前加一个字母‘B’,才是正确的编号显示格式)请大家帮忙想想,因为最多一百分,小弟会再给加分的!
create trigger tru_T_jgk
on T_jgk
for update
as
begin
if update(MC)
begin
update T_cltcl set C_name = MC from inserted where BH=C_bh
update T_Dglj set D_name='B'+MC from inserted where BH=stuff(D_bh,1,1,'')
end
if update(DEJ)
update T_Dglj set D_dj=DEJ from inserted where BH=stuff(D_bh,1,1,'')
if update(BH)
begin
update T_cltcl set C_bh = BH from inserted where BH=C_bh
update T_Dglj set D_bh='B'+BH from inserted where BH=stuff(D_bh,1,1,'') and left(D_bh,1)='B'
end
end
编号:BH;唯一
名称:MC;唯一
定额价:DEJ界面限定
编号:BH;唯一
名称:MC;唯一
不能同时修改create trigger tr_T_jgk_update
on T_jgk
for update
as
if update(BH)
begin
update b set
C_bh = i.bh
from T_cltcl b,inserted i,deleted d
where i.mc=d.mc
and d.bh =b.C_bh update b set
D_bh = 'B' + i.bh
from T_Dglj b,inserted i,deleted d
where i.mc=d.mc
and 'B' + d.bh =b.D_bh
end
if update(mc)
begin
update b set
C_name = i.mc
from T_cltcl b,inserted i,deleted d
where i.bh=d.bh
and d.bh =b.C_bh update b set
D_name= 'B' + i.mc
from T_Dglj b,inserted i,deleted d
where i.bh=d.bh
and d.bh =stuff(b.D_bh,1,1,'')
and left(b.D_bh,1) in ('A','B','C')
end if update(DEJ)
begin
update b set
D_dj= i.DEJ
from T_Dglj b,inserted i,deleted d
where i.bh=d.bh
and d.bh =stuff(b.D_bh,1,1,'')
and left(b.D_bh,1) in ('A','B','C')
end
GO
没动脑
create trigger tru_T_jgk
on T_jgk
for update
as
begin
if update(MC)
begin
update T_cltcl set C_name = MC from inserted where BH=C_bh
update T_Dglj set D_name='B'+MC from inserted where BH=stuff(D_bh,1,1,'')
end
if update(DEJ)
update T_Dglj set D_dj=DEJ from inserted where BH=stuff(D_bh,1,1,'')
if update(BH)
begin
update T_cltcl set C_bh = i.BH from inserted i ,deleted d where d.BH=C_bh
update T_Dglj set D_bh='B'+i.BH from inserted i ,deleted d where d.BH=stuff(D_bh,1,1,'') and left(d.D_bh,1)='B'
end
end
列名 'D_bh' 无效。
最后一行的'D_bh' 无效
列名 'D_bh' 无效。
最后一行的'D_bh' 无效
7楼的也有一些问题,如果同时修改三个就会报错,所以当初我想着弄成三个或者两个触发器。