SQL删除、插入触发器(trigger)

create table aa ([dept_id] int,[inner_code] varchar(6),[ConText] varchar(18))
insert aa
select 1,'01','总公司' union all
select 2,'0101','一分公司' union all
select 3,'010101','一分公司第一项目部' union all
select 4,'0102','二分公司' union all
select 5,'010201','二分公司第二项目部'


create table bb ([dpart_id] int,[ConText] varchar(10))
insert bb
select 1,'财务办' union all
select 2,'人力资源部' union all
select 3,'审计部'


create table cc([name] varchar(4),[dept_id] int,[dpart_id] int)
insert cc
select '张三',1,1 union all
select '李四',2,1 union all
select '王二',3,1 union all
select '陈三',4,1 union all
select '王五',5,1

select * from aa
select * from bb
select * from cc
--查询结果

dept_id inner_code ConText
----------- ---------- ------------------
1 01 总公司
2 0101 一分公司
3 010101 一分公司第一项目部
4 0102 二分公司
5 010201 二分公司第二项目部

(所影响的行数为
5 行)

dpart_id ConText
----------- ----------
1 财务办
2 人力资源部
3 审计部

(所影响的行数为
3 行)

name dept_id dpart_id
---- ----------- -----------
张三 1 1
李四
2 1
王二
3 1
陈三
4 1
王五
5 1

(所影响的行数为
5 行)

--创建删除存储过程
create trigger dd on cc
for delete
as
declare @dept_id int
select @dept_id=dept_id from deleted
delete from aa where dept_id=@dept_id

--测试
delete from cc where dept_id=2
select * from aa
select * from bb
select * from cc

--查询结果

(所影响的行数为
1 行)

dept_id inner_code ConText
----------- ---------- ------------------
1 01 总公司
3 010101 一分公司第一项目部
4 0102 二分公司
5 010201 二分公司第二项目部

(所影响的行数为
4 行)

dpart_id ConText
----------- ----------
1 财务办
2 人力资源部
3 审计部

(所影响的行数为
3 行)

name dept_id dpart_id
---- ----------- -----------
张三 1 1
王二
3 1
陈三
4 1
王五
5 1

(所影响的行数为
3 行)


--插入触发器的制作 :

create trigger charu on cc

for insert

as

declare @dept_id int

declare @dpart_id int

declare @name varchar(10)

select @dept_id=dept_id from inserted

select @dpart_id=dpart_id from inserted

select @name=name from inserted

insert aa select @dept_id,null,null

insert bb select @dpart_id,@name

go

insert cc select '李晗',100,120
insert cc select '李晗',100,120

select * from aa
select * from bb
select * from cc

------------数据:
dept_id inner_code ConText
----------- ---------- ------------------
1 01 总公司
100 NULL NULL
3 010101 一分公司第一项目部
4 0102 二分公司
5 010201 二分公司第二项目部
100 NULL NULL

(所影响的行数为
6 行)

dpart_id ConText
----------- ----------
1 财务办
2 人力资源部
3 审计部
120 李晗
120 李晗

(所影响的行数为
5 行)

name dept_id dpart_id
---- ----------- -----------
张三 1 1
李晗
100 120
李晗
100 120
陈三
4 1
王五
5 1

(所影响的行数为
5 行)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值