之前,在项目的管理员后台删除会员信息的时候,要求与会员相关的所有表信息删除。这里的删除,指的都是逻辑删除,即将记录的状态置为删除状态,不是从数据库直接删除的物理删除。尽管最后项目经理要求不采用触发器的方案,采用在程序端置状态的方式来实现,还是来mark一下,就算是对Sql server触发器复习一下吧。
该触发器的代码如下所示:
复制代码
11: ---在membership会员信息表里面删除指定membershipid的企业会员时(实际上没有进行物理删除,只是将status置为-1)
复制代码
12: ---将与企业会员有关的信息表里面的相关信息进行逻辑删除,即status置为-1
复制代码
13: If Exists(Select 1 From sys.triggers Where name='membership_update')
复制代码
14: Drop Trigger membership_update
复制代码
15: Go
复制代码
16: create trigger membership_update
复制代码
17: on Membership
复制代码
18: for update
复制代码
19: as
复制代码
110: begin
复制代码
111: declare @membershipid as int,@status as int
复制代码
112: select @membershipid=Membershipid,@status=Status from inserted;
复制代码
113: if @status=-1
复制代码
114: begin
复制代码
115: update company set status=@status where membershipid=@membershipid;
复制代码
116: update supply set status=@status where membershipid=@membershipid;
复制代码
117: update buy set status=@status where membershipid=@membershipid;
复制代码
118: update companynews set status=@status where membershipid=@membershipid;
复制代码
119: update honor set status=@status where membershipid=@membershipid;
复制代码
120: update friendlink set status=@status where membershipid=@membershipid;
复制代码
121: update [message] set status=@status where membershipid=@membershipid;
复制代码
122: update employment set status=@status where membershipid=@membershipid;
复制代码
123: update notice set status=@status where membershipid=@membershipid;
复制代码
124: end
复制代码
125: end
转载于:https://www.cnblogs.com/jerry01/archive/2012/09/13/2683050.html
最后
以上就是眯眯眼小白菜最近收集整理的关于删除会员所有信息的触发器的全部内容,更多相关删除会员所有信息内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复