[SQL2005触发器学习]-2、After触发器

1、After触发器的工作原理

    After触发器是在记录变更完成之后才被激活执行的。以Delete操作为例,当SQLSERVER 接收到一个Delete请求时,SQLSERVER先将需要删除的记录存放到 Deleted 表里面。然后把物理表里面的数据删除,再激活 After 触发器,执行触发器里面的代码。执行完成之后从内存中删除 Deleted 表。(在触发器里面可以使用 Rollback Transaction 回滚操作,取消删除)

    注意:
    ❤ After触发器只能建立在数据表上。
    ❤  一个数据表可以有多个触发器,但是一个触发器只能对应一个表。
    ❤  Truncate Table 语句虽然类似于Delete语句可以删除记录,但是它不激活Delete触发器,因为它不记入日志。
    ❤  writetext语句不能触发 Insert和Update触发器。

2、After触发器实例

    a) Insert触发器 

  
    
Create Trigger [ Insert触发器名 ]
ON Table_Name
After
Insert
AS
Begin
print ' 又添加了一条记录 '
if ( select count ( * ) from Inserted) > 1
Begin
print ' 一次只能增加一条记录 '
Rollback Transaction
End
End
    b) Update 触发器
  
    
Create Trigger [ Update触发器 ]
on Table_Name
After
Update
AS
Begin
print ' 又更新了一条记录 '
if ( select username from Inserted) = ' admin '
Begin
print ' 不允许用户名为admin '
Rollback Transaction
End
End
    c) Delete 触发器
  
    
Create Trigger [ Delete触发器名 ]
ON Table_Name
After
Delete
AS
Begin
print ' 删除了一条记录 '
if ( select username from Deleted) = ' admin '
Begin
print ' 不允许删除管理员 '
Rollback Transaction
End
End

你可能感兴趣的:(sql2005)