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
 MS-SQL 触发器

实例:

 

 

你可能感兴趣的:(sql)