zoukankan      html  css  js  c++  java
  • 简单的触发器

    定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。 
    常见的触发器有三种:分别应用于Insert , Update , Delete 事件。 

    表一:news表

    CREATE TABLE [dbo].[news](
     [ID] [int] IDENTITY(1,1) NOT NULL,
     [title] [nvarchar](50) NULL,
     [contents] [nvarchar](50) NULL

    表二:newsdel记录被删除、被修改过的news信息

    CREATE TABLE [dbo].[newsdel](
     [ID] [int] IDENTITY(1,1) NOT NULL,
     [newsID] [int] NULL,
     [title] [nvarchar](50) NULL,
     [contents] [nvarchar](50) NULL

    触发器的基本语法:

    create trigger newsdeleted         -----创建触发器,名称可以自己随便叫
    On news                                     -----表名称,即操作的对象,可多个
    for Delete                                   -----事件,一般为Insert , Update , Delete 事件,可多选
    As 
    insert into newsdel(newsID,title,contents)               ---------------要执行的sql
    select ID,title,contents from Deleted                      

    注意:inserted临时表,表示新插入的信息,也包括新加的和修改后的新信息;

               deleted临时表,表示被删除的信息,也包括被修改前的信息

    1>把删除的news信息保存在newsdel表中,我们需要一个delete触发器:

    create trigger newsdeleted 
    On news 
    for Delete 
    As 
    insert into newsdel(newsID,title,contents) 
    select ID,title,contents from Deleted

    2>把修改前的news信息保存在newsdel表中,我们需要一个update触发器:

    create trigger newsupdated
    On news 
    for update 
     As 
    insert into newsdel(newsID,title,contents) 
    select ID,title,contents from Deleted


    //成功一定有方法,失败一定有原因。
  • 相关阅读:
    国外摄影网站
    网络基础之子网划分
    Java-多线程第三篇3种创建的线程方式、线程的生命周期、线程控制、线程同步、线程通信
    Java-多线程第二篇多线程相关认识(2)
    设计模式-第八篇之桥接模式
    设计模式-第七篇之门面模式
    设计模式-第六篇之策略模式
    设计模式-第五篇之命令模式
    设计模式-第四篇之代理模式
    设计模式-第九篇之观察者模式
  • 原文地址:https://www.cnblogs.com/webapi/p/2425939.html
Copyright © 2011-2022 走看看