首页 > 代码库 > SQL学习之--触发器
SQL学习之--触发器
USE [learn2]GO/****** Object: Trigger [dbo].[trigger_AdClass] Script Date: 09/30/2014 09:01:03 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: <Author,,sushine>-- Create date: <Create Date,,2014-9-29>-- Description: <Description,,保证子父级 webpageId 关联一致;或者子级单独是可以的>-- =============================================create TRIGGER [dbo].[trigger_AdClass] on [dbo].[AdClass] AFTER insert,updateAS BEGIN try declare @err nvarchar(256),@classId int,@parentId int; if(exists(select 1 from inserted))--当增加一条数据的时候和当修改parentId的时候 begin select @classId=classId from inserted; select @parentId=parentId from inserted; if(@parentId is not null) begin update AdClass set WebPageId=(select WebPageId from AdClass where ClassId=@parentId) where AdClass.ClassId=@classId; end end if(update(webpageId))--当修改webpageId的时候 begin select @classId=classId from inserted; update AdClass set WebPageId=i.WebPageId from inserted i where adclass.ClassId in(select ClassId from dbo.AdClassTree(@classId,null) where Depth>1); end --else if(update(parentId)) --begin -- select @parentId= parentId from inserted; -- select @classId=classId from inserted; -- update AdClass set WebPageId=(select WebPageId from AdClass where ClassId=@parentId) where adclass.ClassId=@classId; --endend try begin catch rollback; set @err=ERROR_MESSAGE(); Raiserror(@err,16,0);end catch
触发器 inserted 和 deleted 两种。
当insert 和update的时候用inserted
SQL学习之--触发器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。