您的位置:程序门 -> ms-sql server -> 基础类



触发器简单问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


触发器简单问题[已结贴,结贴人:helloworld_hzs]
发表于:2007-04-21 04:13:34 楼主
create   table   xs
(xsnum   int   primary   key,
xsname   varchar(20)   not   null,
xssex   varchar(2)   not   null)

create   table   kc
(xsnum   int   foreign   key   references   xs(xsnum),
xsname   varchar(20)   not   null,
kcnum   int   null,
kcname   varchar(20)   null)

写了个update触发器
create   trigger   [trixs]   on   [dbo].[xs]  
for   update
as
begin  
if   update(xsnum)   or   update   (xsname)
update   kc   set   xsnum=i.xsnum,xsname=i.xsname   from   inserted   i,deleted   d   where   kc.xsnum=d.xsnum
end

为什么我修改xs表中的xsnum,xsname时kc表只修改了xsnum而没修改到xaname?
谢谢
发表于:2007-04-21 07:15:421楼 得分:2
修改xs表中的xsnum时,   如果kc表中的xsnum有外键引用时会报错吧
发表于:2007-04-21 09:09:432楼 得分:8
--这样做就可以了(经测试)
create   trigger   [trixs]   on   [dbo].[xs]  
for   update
as
begin  
if   update(xsnum)   or   update(xsname)
update   kc   set   xsnum=i.xsnum   ,xsname=i.xsname   from   kc   ,inserted   i,deleted   d   where   kc.xsnum=d.xsnum   and   kc.xsname=d.xsname
end


快速检索

最新资讯
热门点击