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

    触发器是指,当在指定的表上发生一个特定的操作事件时,将被调用的一个程序段。这个特定的操作事件也叫触发事件。当触发器所在的表有触发事件产生时,数据库服务器可不必考虑当前用户是谁而直接执行触发器程序。
          触发器定义语句的主要组成部分如下:
          触发器名;
          触发器所在的表的名称;
          触发动作时间;
          触发事件;
          触发事件的列清单;
          执行语句

    编写一触发器时时检测USER表,当用户在线状态“State”由“在线”改变“离线”, 在MESSAGE表时插入一条记录
    ==============================
    IF OBJECT_ID('USER') IS NOT NULL DROP TABLE
    IF OBJECT_ID('MESSAGE') IS NOT NULL DROP TABLE
    IF OBJECT_ID('TIG_USER') IS NOT NULL DROP TRIGGER TIG_USER
    GO
    CREATE TABLE (
    ID INT,
    VARCHAR(50),
    STATE VARCHAR(10),
    CREATETIME DATETIME
    )
    INSERT INTO
    SELECT      1  ,'qxm','离线','2009-09-14 10:46:33' UNION ALL
    SELECT      2  ,'ljh','在线','2009-09-14 10:48:34' UNION ALL
    SELECT      3  ,'wfd','在线','2009-09-14 10:49:35'
    CREATE TABLE (
    ID INT,
    VARCHAR(50),
    SENDTIME DATETIME
    )
    GO
    CREATE TRIGGER TIG_USER
    ON
    AFTER UPDATE
    AS
    IF UPDATE(STATE)
        INSERT SELECT D.id,D.NAME,D.CREATETIME
        FROM INSERTED I INNER JOIN DELETED D
    ON I.ID=D.ID AND I.STATE='离线' AND D.STATE='在线'

    GO
    UPDATE SET STATE='离线'
    SELECT * FROM
    /*
    3    wfd    2009-09-14 11:07:13.980
    2    ljh    2009-09-14 11:07:13.980
    */

  • 相关阅读:
    netty集成springboot
    NIO-BufferAPI
    python专题知识追寻者对OS的理解
    python专题文件操作
    我终于学会了使用python操作postgresql
    跟着知识追寻者学BeautifulSoup,你学不会打不还口,骂不还手
    那些不懂hystrix的秘密
    如何成为一名Web前端开发人员?
    css剪裁GIF背景图片动画特效
    css 变量教程
  • 原文地址:https://www.cnblogs.com/aoyihuashao/p/1623726.html
Copyright © 2011-2022 走看看