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

    由于 Sql Server 中没有行触发器,可以采用如下方法来代替:

    USE [University]
    GO
    /****** Object:  Trigger [dbo].[T_Student]    Script Date: 10/17/2018 17:58:24 ******/
    CREATE TRIGGER [dbo].[T_Student]  
    ON [dbo].[Student]
    AFTER INSERT,DELETE,UPDATE
    AS
    BEGIN
        --INSERT
        IF(EXISTS(SELECT 1 FROM INSERTED) AND NOT EXISTS(SELECT 1 FROM DELETED))
        BEGIN 
            INSERT INTO [University].[DBO].[SYNCHRONIZETASK]([TABLENAME],[TYPE],[PRIMARYKEY])
            SELECT '[University].[DBO].[Student]', 1, StudentID FROM INSERTED
        END
        --DELETE
        IF(NOT EXISTS(SELECT 1 FROM INSERTED) AND EXISTS(SELECT 1 FROM DELETED))
        BEGIN
            INSERT INTO [University].[DBO].[SYNCHRONIZETASK]([TABLENAME],[TYPE],[PRIMARYKEY])
            SELECT '[University].[DBO].[Student]', 2, StudentID FROM DELETED
        END
        --UPDATE
        IF(EXISTS(SELECT 1 FROM INSERTED) AND EXISTS(SELECT 1 FROM DELETED))
        BEGIN
            INSERT INTO [University].[DBO].[SYNCHRONIZETASK]([TABLENAME],[TYPE],[PRIMARYKEY])
            SELECT '[University].[DBO].[Student]', 3, StudentID FROM INSERTED
        END
    END

     说明:

    1. 数据库名:University,数据库表名:Student

    2.SYNCHRONIZETASK 表用来记录源数据哪些记录发生了更改,这样同步没有修改时间字段的表的数据会比较方便

     (其字段如下:[TableName], [Type] ,[PrimaryKey]

  • 相关阅读:
    POJ 1222 高斯消元更稳
    Maven与Eclipse使用中遇到的问题解决之道
    Java并发之任务的描述和执行
    XMemcached简单使用示例
    Java的容器类小结
    Java系统属性与Preferences API的简单介绍
    你知道自己执行的是哪个jre吗?
    Log4J配置文件详解
    Java日志工具之SLF4J
    Java日志工具之Log4J
  • 原文地址:https://www.cnblogs.com/hellowzl/p/9805889.html
Copyright © 2011-2022 走看看