触发器 (Delete Update)

摘要:
--删除触发器IF(EXISTS(SELECT*FROMsysobjectsWHERE Name='T_PlanQtyDelete'))DROPTRIGGERT_ PlanQtyDeletegoCreatetriggerT_ PlanQtyDeleteOnPlanQtyforDeleteAsINSERTINTOdbo.PlanQtyHistory(数量,添加日期,产品ID)SE
--delete触发器
IF(EXISTS(SELECT * FROM sysobjects WHERE name='T_PlanQtyDelete'))
DROP TRIGGER T_PlanQtyDelete
go

   Create trigger T_PlanQtyDelete
       On PlanQty
       for Delete
     As
        INSERT INTO dbo.PlanQtyHistory(qty, addDate, Productid)
        SELECT qty, addDate, Productid FROM deleted
go
 
--update触发器
IF(EXISTS(SELECT * FROM sysobjects WHERE name='T_PlanQtyUpdate'))
DROP TRIGGER T_PlanQtyUpdate
go

CREATE TRIGGER T_PlanQtyUpdate
    ON PlanQty FOR UPDATE
AS        
    IF UPDATE(qty)
        BEGIN
            INSERT INTO dbo.PlanQtyHistory(qty, addDate, Productid)        
            SELECT qty, addDate, Productid FROM deleted 
            --deleted  表示修改前的值   inserted 表示修改后的值
        END
    

deleted:删除之前会先把记录存在这张表里 

inserted:修改之前会先把记录写在这种表里

update 会先把记录写入deleted 然后再inserted

同时 truncate table PlanQty  不会触发  delet触发器 换成delete 

免责声明:内容来源于网络,仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇.NET版本FCKeditor2.6.4的使用方法 dodomysql入门(一)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SQLServer更新语句要注意

在SQLServer中 update语句中对于表不能使用别名 eg:update table a set a.column="" where ... 这样在SQLServer中是不对(在oracle中可以),不能对表使用别名,这是为什么呢? 这是因为我们一直写的update更新语句都是简写过的,实际上正确的应该是这样的: update t set t.Co...

[C#]使用Quartz.NET来创建定时工作任务

本文为原创文章、源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称、作者及网址,谢谢! 开发工具:VS2017 语言:C# DotNet版本:.Net FrameWork 4.0及以上 一、安装Quartz 在“程序包管理器控制台”输入(下划线所示): PM> Install-Package Quartz 安装完毕之后,引用的D...

DB2带UPDATE,INSERT语句的函数

带UPDATE,INSERT 语句的函数返回值应该是一个TABLE如:RETURNS TABLE(COL VARCHAR(36))函数中返回应该:return select NEWID from sysibm.sysdummy1;在调用时例子: select*fromtable(UF_GETID('RE'))ast 创建ID函数: CodeCREAT...

java通过jdbc访问mysql,update数据返回值的思考

 先不说那么多,把Java代码贴出来吧。 public static void main(String[] args) throws InterruptedException, IOException { try { DriverManagerDataSource dataSource = new DriverManager...

ORACLE触发器详解

ORACLE PL/SQL编程之八:  把触发器说透    本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建触发器 8.2.1 触发器触发次序 8.2.2 创建DML触发器 8.2.3 创建替代(INSTEAD OF)触发器 8.2.3 创建系统事件触发器 8.2.4 系统触发器...

数据库-触发器

一、触发器是一种特殊的存储过程,不能被显式调用,只能在对表进行insert、update、delete操作时被自动激活。所以触发器可以用来实现对表进行复杂的完整性约束。 二、 Sql Server为每个触发器都创建了两个专用表:Inserted表和Deleted表。这两个表由系统来维护,它们存在于内存中而不是数据库中。这两个表的结构总是与被该触发器作用的表...