MS-SQL 触发器

触发器是在对表进行插入、更新或删除操作时自动执行的存储过程,通常用于强制业务规则,一种高级约束,可以定义比用CHECK 约束更为复杂的约束。

特点:

View Code
触发器定义在特定的表上,与表相关
自动触发执行
不能直接调用
是一个事务(可回滚)

触发器触发时:
系统自动在内存中创建deleted表或inserted表
只读,不允许修改;触发器执行完成后,自动删除
inserted 表 
临时保存了插入或更新后的记录行 
可以从inserted表中检查插入的数据是否满足业务需求
如果不满足,则向用户报告错误消息,并回滚插入操作
deleted 表
临时保存了删除或更新前的记录行 
可以从deleted表中检查被删除的数据是否满足业务需求
如果不满足,则向用户报告错误消息,并回滚插入操作

 

类型:

DELETE 触发器
INSERT 触发器
UPDATE 触发器

 语法:

CREATE TRIGGER 触发器名称
ON 
{ FOR|AFTER|INSTEAD ON}
{ [INSERT][,][DELETE][,][UPDATE]}
AS
  SQL 语句[.....n]
GO

更详细的语法结构

CREATE TRIGGER trigger_name 
ON { table | view } 
[ WITH ENCRYPTION ] 
{
    { { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] }
        [ WITH APPEND ]
        [ NOT FOR REPLICATION ]
        AS
        [ { IF UPDATE ( column )
            [ { AND | OR } UPDATE ( column ) ]
                [ n ]
        | IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask )
                { comparison_operator } column_bitmask [ n ]
        } ] 
        sql_statement [ n ] 
    } 
} 

 

 Inserted 和 Deleted
 

实例:

 

 

转载于:https://www.cnblogs.com/gzh4455/archive/2012/06/13/2547741.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值