判断触发器正在处理的是插入,删除还是更新触发
处理 删除 触发器 更新 判断 插入 还是 正在
2023-06-13 09:14:32 时间
但是有时候,可以视看处进逻辑程度,可以把三者写成一个触发器,只是在其中稍作判断而已。
你可以根据从下面方法判断触发器是是处理了插入,删除还是更新触发的:
复制代码代码如下:
你可以根据从下面方法判断触发器是是处理了插入,删除还是更新触发的:
--宣告两个变量
DECLARE@DBIT=0
DECLARE@IBIT=0
--如果在DELETED内部临时触发表找到记录,说明旧数据被删除
IFEXISTS(SELECTTOP11FROMDELETED)
SET@D=1
--如果在INSERTED内部临时触发表找到记录,说明有新数据插入
IFEXISTS(SELECTTOP11FROMINSERTED)
SET@I=1
--如果两个表都有记录,说明触发器是执行更新触发
IF@I=1AND@D=1
PRINT(N"更新。")
--如果变量@I值被变更为1,而变量@D没有变更,说明触发器是执行插入触发
IF@I=1AND@D=0
PRINT(N"插入")
--下面判断成立,说明说明触发器是执行删除触发
IF@I=0AND@D=1
PRINT(N"删除")
另外有关两个内部临时触发表,触发器的Inserted表和Deleted表
触发器有两个虚拟表,Inserted表和Deleted表,这两个表在不同操作情况之下,表中的数据状态可不一样。
一、插入操作(INSERT)时:Inserted表有数据,Deleted表无数据。
二、更新操作(UPDATE)时:Inserted表有数据(新数据),Deleted表有数据(旧数据)。
三、删除操作(DELETE)时:Inserted表无数据,Deleted表有数据。
相关文章
- ORA-24360: Type Descriptor Object not specified for Object Bind/Define ORACLE 报错 故障修复 远程处理
- ORA-29324: SET COMPATIBILITY release string format is wrong ORACLE 报错 故障修复 远程处理
- ORA-40116: NULL values found in weights table ORACLE 报错 故障修复 远程处理
- ORA-47405: negative trust level for Factor string ORACLE 报错 故障修复 远程处理
- SQL开发知识:Oracle查询sql语句错误信息的控制和定位处理方式
- MySQL Error number: MY-010088; Symbol: ER_CREDENTIALLESS_AUTO_USER_BAD; SQLSTATE: HY000 报错 故障修复 远程处理
- MySQL Error number: MY-010298; Symbol: ER_X509_CANT_CREATE_CERT; SQLSTATE: HY000 报错 故障修复 远程处理
- SQLServer 错误 7916 修复:对象 ID O_ID,索引 ID I_ID,分区 ID PN_ID,分配单元 ID A_ID(类型为 TYPE),页 P_ID,槽 S_ID 的记录已删除。 将重新生成索引。 故障 处理 修复 支持远程
- SQLServer 错误 8710 必须提供与 CUBE、ROLLUP 或 GROUPING SET 查询一起使用的聚合函数,才能合并子聚合。 若要修复此问题,请删除该聚合函数或在 GROUP BY 子句基础上使用 UNION ALL 编写查询。 故障 处理 修复 支持远程
- MySQL Error number: MY-011005; Symbol: ER_DD_UPGRADE_INFO_FILE_CLOSE_FAILED; SQLSTATE: HY000 报错 故障修复 远程处理
- ORA-04021: timeout occurred while waiting to lock object stringstringstringstringstring ORACLE 报错 故障修复 远程处理
- ORA-06918: CMX: T_NOEVENT during wait for read event ORACLE 报错 故障修复 远程处理
- ORA-08449: invalid numeric symbol found in picture mask ORACLE 报错 故障修复 远程处理
- ORA-12445: cannot change HIDDEN property of column ORACLE 报错 故障修复 远程处理
- MySQL Error number: MY-013031; Symbol: ER_IB_MSG_1206; SQLSTATE: HY000 报错 故障修复 远程处理
- Linux如何处理文件已删除但空间不释放的问题
- 处理MySQL自动删除优化:轻松清理不必要的数据。(mysql自动删除)
- Linux如何删除同名文件?快速有效地处理重复文件名问题(linux删除同名文件)
- 快速高效处理大量数据MySQL删除操作技巧(mysql中删除大量数据)
- MySQL批量删除高效处理多条数据(mysql一次删除多条)
- 关于删除时的提示处理(确定删除吗)
- C语言二维数组的处理实例
- C#处理文本文件TXT实例详解
- nodejs命令行参数处理模块commander使用实例