同一事务内,A表触发器能否访问B表的新增数据?
发布网友
发布时间:2023-01-21 19:38
我来回答
共1个回答
热心网友
时间:2024-07-08 09:16
应用程序的代码应该是先向A表insert,再向B表insert(我用事件探测器观察到的,因为应用程序是别人开发的,我手头上没代码)。
当然我可以在B表的触发器中实现统计汇总回填表A的功能。但是,B表的触发器已经被加密了,我无法追加代码。1.
A表触发器不能访问B表触发器中的数据(B表新增的数据)2.
既然你是从B表新增数据汇总后,添加到A表,证明A/B表之间有关联.
你可以直接在B表创建一个触发器完成你的汇总统计工作(一个表可以有多个触发器,可以有多个insert,update,delete触发器)
所以你并不需要在原触发器基础上追加处理代码.3.
多个触发器SQL Server 允许为每个数据修改事件(DELETE、INSERT 或 UPDATE)创建多个触发器。例如,如果对已有 UPDATE 触发器的表执行 CREATE TRIGGER FOR UPDATE,则将创建另一个更新触发器。在早期版本中,在每个表上,每个数据修改事件(INSERT、UPDATE 或 DELETE)只允许有一个触发器。
说明 如果触发器名称不同,则 CREATE TRIGGER(兼容级别为 70)的默认行为是在现有的触发器中添加其它触发器。如果触发器名称相同,则 SQL Server 返回一条错误信息。