请问触发器是怎么样工作的?比如我批量更新的时候,它内部是如何操作的?是单条触发还是同时多条触发?

不懂必须要问 2014-02-04 05:52:19
有一个表ABC
A B C
1 A1 A1
2 A1 B3
3 A1 B4
4 A1 B5
5 A1 B6

这个表有三字段,A/B/C,有5行数据。有一个删除触发器。

例如我执行这条语句的时候,DELETE FROM ABC WHERE B='A1'

触发器中是如工作的?一条一条触发吗?还是同时触发?

触发器是删除其他关联表的数据。那我这里应该如何写呢?删除CDE表中的B字段也是等于A1的数据。
...全文
267 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlp321002 2014-02-05
  • 打赏
  • 举报
回复
--建立delete触发器 create trigger dbo.trigger_abc_delete on dbo.abc --1、这个是删除abc表的时候,触发; after delete as delete cde from deleted d where cde.b = d.b --这个是逻辑; d.b 这个就是删除条件的值。 go
sqlkxr 2014-02-05
  • 打赏
  • 举报
回复
按执行的语句触发,只触发一次,但deleted,inserted,updaated,里是影响的行数
LongRui888 2014-02-05
  • 打赏
  • 举报
回复
引用 4 楼 MoreQuestion 的回复:
那么我有条件删除某些符合条件的呢?比如只删除触发数据中的其中一两条?
把你的删除条件加上就可以的,比如在触发器中: create trigger dbo.trigger_abc_delete on dbo.abc after delete as delete cde from deleted d where cde.b = d.b and xxx = xx --删除条件 go
ACMAIN_CHM 2014-02-05
  • 打赏
  • 举报
回复
一条一条触发
LongRui888 2014-02-04
  • 打赏
  • 举报
回复
呵呵,给你一个完整的例子:


create table abc( A int, B varchar(10),  C varchar(10))

insert into abc
select 1       ,'A1',      'A1' union all
select 2       ,'A1',      'B3' union all
select 3       ,'A1',      'B4' union all
select 4       ,'A1',      'B5' union all
select 5       ,'A1',      'B6'


create table cde(b varchar(10))

insert Into cde
select 'A1' union all
select 'A2' union all
select 'A1' 
go


--建立delete触发器
create trigger dbo.trigger_abc_delete
on dbo.abc
after delete 
as

delete cde
from deleted d
where cde.b = d.b

go


--执行delete语句,触发delete触发器
DELETE FROM ABC WHERE B='A1'


--都delete了
select *
from abc


--删除了b等于A1的记录
select *
from cde
/*
b
A2
*/
不懂必须要问 2014-02-04
  • 打赏
  • 举报
回复
那么我有条件删除某些符合条件的呢?比如只删除触发数据中的其中一两条?
LongRui888 2014-02-04
  • 打赏
  • 举报
回复
试试这个: create trigger dbo.trigger_abc_delete on dbo.abc after delete as delete cde from deleted d where cde.b = d.b go
LongRui888 2014-02-04
  • 打赏
  • 举报
回复
是同时触发,因为在sql server没有行级触发器,所以是按照语句来的,一个语句,就触发一次。

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧