zoukankan      html  css  js  c++  java
  • SQL触发器

    一 简介

        触发器是一种特殊的存储过程,在对表进行插入、更新、删除的时候会触发执行。触发器一般用在check约束或者一些后续事务逻辑的处理。触发器和普通的存储过程的区别是:触发器是当对某一个表进行操作。诸如:update、insert、delete这些操作的时候,系统会自动调用执行该表上对应的触发器。所以触发器可以用来实现对表实施复杂的完整性约束。

    二 相关参数

        触发器触发的时候两个特殊的表:插入表(instered表)和删除表(deleted表)。这两张表的结构与被改触发器应用的表的结构相同,存储的数据是要进行操作的数据,当触发器完成工作后,这两张表就会被删除。Inserted表的数据是插入或是修改后的数据,而deleted表的数据是更新前的或是删除的数据。

     

     

    三 Instead of 和 After触发器
      SQL Server2000提供了两种触发器:Instead of 和After 触发器。这两种触发器的差别在于他们被激活的同:
     Instead of触发器用于替代引起触发器执行的T-SQL语句。除表之外,Instead of 触发器也可以用于视图,用来扩展视图可以支持的更新操作。
     After触发器在一个Insert,Update或Deleted语句之后执行,进行约束检查等动作都在After触发器被激活之前发生。After触发器只能用于表。
     一个表或视图的每一个修改动作(insert,update和delete)都可以有一个instead of 触发器,一个表的每个修改动作都可以有多个After触发器。

    四 触发器的添加,修改,删除,查看操作

    4.1 添加创建语法

    create trigger trigger_name
      on {table_name | view_name}
      {for | After | Instead of }
      [ insert, update,delete ]
      as
      sql_statement

    4.2 修改语法

    alter trigger trigger_name--类似于修改表结构

    4.3 删除语法

    drop trigger trigger_name

    4.4 查看触发器

    select * from sys.triggers

    select * from sysobjects where xtype='TR'
    ---- 查看单个触发器
    exec sp_helptext '触发器名'

    五 触发器的简单实例

    --1 创建触发器,触发添加内容

    Create TRIGGER [dbo].[s1]
    ON [dbo].[A]
    FOR insert
    as
    DECLARE @id VARCHAR(50)
    DECLARE @name varchar(50)
    DECLARE @nos INT
    SELECT @id=[ID] ,@name=a.Name,@nos=a.number FROM a AS a
    INSERT INTO B
    (
    IC,
    CName,
    No
    -- AID -- this column value is auto-generated
    )
    VALUES
    (
    @id,
    @name,
    @nos
    )

    ---2删除内容,触发级联删除

    Create trigger [dbo].[tri_deletemember]
    on [dbo].[Member]
    for delete
    as
    declare @ID VARCHAR(150)
    select @ID=ID from deleted
    delete from MemCount where ID=@ID
    delete from MemMoney where @ID=@ID

  • 相关阅读:
    web应用程序的状态管理
    web学习笔记二
    java Web 学习笔记一
    简述Bootstrap栅格布局方式
    CSS3笔记
    CSS 笔记
    初识HTML流水笔记
    数据库初识
    java流的操作
    Java 套接字使用
  • 原文地址:https://www.cnblogs.com/zoood/p/5773482.html
Copyright © 2011-2022 走看看