简单的触发器

定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。 
常见的触发器有三种:分别应用于Insert , Update , Delete 事件。 

表一:news表

CREATE TABLE [dbo].[news](
 [ID] [int] IDENTITY(1,1) NOT NULL,
 [title] [nvarchar](50) NULL,
 [contents] [nvarchar](50) NULL

表二:newsdel记录被删除、被修改过的news信息

CREATE TABLE [dbo].[newsdel](
 [ID] [int] IDENTITY(1,1) NOT NULL,
 [newsID] [int] NULL,
 [title] [nvarchar](50) NULL,
 [contents] [nvarchar](50) NULL

触发器的基本语法:

create trigger newsdeleted         -----创建触发器,名称可以自己随便叫
On news                                     -----表名称,即操作的对象,可多个
for Delete                                   -----事件,一般为Insert , Update , Delete 事件,可多选
As 
insert into newsdel(newsID,title,contents)               ---------------要执行的sql
select ID,title,contents from Deleted                      

注意:inserted临时表,表示新插入的信息,也包括新加的和修改后的新信息;

           deleted临时表,表示被删除的信息,也包括被修改前的信息

 

1>把删除的news信息保存在newsdel表中,我们需要一个delete触发器:

create trigger newsdeleted 
On news 
for Delete 
As 
insert into newsdel(newsID,title,contents) 
select ID,title,contents from Deleted

2>把修改前的news信息保存在newsdel表中,我们需要一个update触发器:

create trigger newsupdated
On news 
for update 
 As 
insert into newsdel(newsID,title,contents) 
select ID,title,contents from Deleted

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
触发器是Oracle数据库中的一种特殊对象,它是一个存储过程,当特定的DML或DDL事件发生时,Oracle会自动执行触发器中的代码。触发器可以用于实现自动增长、数据生成、安全权限控制、审计和日志记录等功能。\[2\]\[3\] 下面是一个简单的Oracle触发器案例: ```sql -- 创建一个触发器,在插入数据到表中时自动更新修改时间字段 CREATE OR REPLACE TRIGGER update_modify_time BEFORE INSERT ON your_table FOR EACH ROW BEGIN :NEW.modify_time := SYSDATE; END; / ``` 这个触发器名为`update_modify_time`,在每次向`your_table`表中插入数据之前触发。触发器的主体部分是一个PL/SQL块,其中`:NEW.modify_time`表示新插入的行的`modify_time`字段,`SYSDATE`表示当前的系统时间。这个触发器的作用是在插入数据时自动将`modify_time`字段更新为当前时间。\[1\] 通过这个简单的案例,你可以了解到Oracle触发器的基本语法和用法。 #### 引用[.reference_title] - *1* *2* [Oracle触发器](https://blog.csdn.net/m0_63223374/article/details/124561919)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Oracle 触发器的使用(带案例详解)](https://blog.csdn.net/weixin_53436351/article/details/122959908)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值