SqlServer触发器常用语法AFTER、INSTEAD OF及其详解

摘要:
首先创建一个简单的触发器CREATETRIGGERtrigger_ nameONtable_ Name[WITHENCRYPTION]FOR | AFTER | INSTEADOF[DELETE,INSERT,UPDATE]AST-SQL语句GO触发器位置:数据库>表>这里是表名_名称>触发器说明:1.[WITH ENCRYPTION]:这表示触发器已加密。加密后,触发器执行方法将

先创建一个简单的触发器

CREATE TRIGGER trigger_name
 ON table_name
 [WITH ENCRYPTION]
  FOR | AFTER | INSTEAD OF [DELETE, INSERT, UPDATE]
 AS 
  T-SQL语句
GO

触发器位置:数据库>表>我这里是表名table_name>触发器

解释:
1、[WITH ENCRYPTION]:表示将该触发器加密,加密后触发器执行方法将无法被查看

[DELETE, INSERT, UPDATE]对应为当执行删除、插入、更新三种动作时被触发
执行insert时,获取插入后的数据,可用select*from inserted读取
执行delete时,获取删除前的数据,可用select*from deleted读取
执行update时,获取更新前的数据,可用select*from deleted读取,获取更新后数据,可用select*from inserted读取


2、AFTER:操作成功后(这里是插入table_a后),执行触发器操作
例如
CREATE TRIGGER T_A
ON table_a
after insert
as
begin

declare @id int,@name varchar(20)
select @id=id,@name=name from inserted
insert into table_b values(@id,@name)

end


3、INSTEAD OF:该触发器只是数据库的“导火线”,触发器是否能执行到想要的结果,需要由触发器中的逻辑进行判断,因为该触发器往往伴随着很多的判断分支。
例如
CREATE TRIGGER T_B
ON table_a
instead of insert
as
begin

IF EXISTS(select*from table_a where name =(select name from inserted))
ROLLBACK TRANSACTION
PRINT '该姓名已存在'

ELSE
INSERT INTO table_a VALUES(select*from inserted)
PRINT '插入成功'

end

免责声明:文章转载自《SqlServer触发器常用语法AFTER、INSTEAD OF及其详解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇URL编码方法比较 Encode,Javascript,escape,encodeURI,encodeURIComponent,UTF8【漏洞分析】dedecms有前提前台任意用户密码修改下篇

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

相关文章

SQL数据库设计的命名规范

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> 1 相关的设计规范:1.1 采用有意义的字段名尽可能地把字段描述的清楚些。当然,也别做过头了,比如CustomerShippingAddressStreetLine1 虽然很富有说...

Oracle触发器详细 和 Oracle 创建序列号

由于这段时间要导入旧的数据库数据到新的数据库中,然而旧的数据库和新的数据库有些表的设计或字段不一样, 需要用到触发器,比如新的数据库a表有aid的主键字段(或自动递增),而旧的数据库a表没有aid的主键字段, 这时候要通过调用触发器,在copy数据时自动插入aid值同时要保证主键唯一性。 解决方案: 在旧数据库新建一个视图,通过视图导入到新的数据库中 --...

Zabbix组件、术语及进程介绍

Zabbix组件、术语及进程介绍 Zabbix 是一款能够监控各种网络参数以及服务器健康性和完整性的企业级的分布式开源监控方案。常用来监视主机CPU、磁盘等负载情况,或者一些常用数据库的监控。 详细介绍可参阅官方文档 Zabbix几个主要组件 Server :Zabbix Server是监控代理程序报告系统可用性、系统完整性和痛惜信息的核心组件。Zabb...

mysql触发器

四要素:1.监视表(table)2.监视事件(insert/update/delete)3.触发时间(after/before)4.触发事件(insert/update/delete) 语法: CREATE TRIGGER triggername AFTER/BEFORE INSERT/UPDATE/DELETE ON 表名 FOR EACH ROW #这...

EBS触发器执行顺序

1. 当打开FORM时: (1) PRE-FORM (2) PRE-BLOCK(BLOCK级) (3) WHEN-NEW-FORM-INSTANCE (4) WHEN-NEW-BLOCK-INSTANCE (5) WHEN-NEW-RECORD-INSTANCE (6) WHEN-NEW-ITEM-INSTANCE 2. 当填写一行记录完成后,光标移动到下...

zabbix触发器表达式

zabbix触发器表达式 触发器使用逻辑表达式来评估通过item获取的数据是处于哪种状态, 触发器中的表达式使用很灵活,我们可以创建一个复杂的逻辑测试监控,触发器表达式形式如下: {<server>:<key>.<function>(<parameter>)}<operator><const...