zoukankan      html  css  js  c++  java
  • sql server触发器的例子

    发布:thebaby   来源:脚本学堂     【  
    本文介绍下,在sql server数据库中使用触发器的简单例子,有需要的朋友可以参考下,希望对你有一定的帮助。

    原文地址:http://www.jbxue.com/db/13345.html
     

    本节内容:

    sql server触发器的例子

    在sql server数据库中的触发器,需要用到两个逻辑表:
    deleted 操作所变更的旧记录集
    inserted 操作所产生的新记录集。

    其中:
     

    执行INSERT操作后deleted逻辑表为空,inserted逻辑表有数据;
    执行DELETE操作后inserted逻辑表为空,deleted逻辑表有数据;
    执行UPDATE操作后两个逻辑表都有数据,deleted为旧记录集,inserted为新记录集。
     

    以上操作变更几条记录,逻辑表就会产生几条记录,多条记录可以在触发器中用游标处理。

    例子:
     

    复制代码代码示例:

    --//sql server触发器的例子
    CREATE TRIGGER qf_trigger
       ON  User_table
       for INSERT,DELETE,UPDATE
    AS
    BEGIN
        declare @userid varchar(20)

        --保存旧值
        declare rs cursor for
            select userid from deleted
        open rs
        fetch next from rs into @userid
        while @@fetch_status=0
        begin
            if update(用户名)
                insert into old_users(userid) values (@userid)
            fetch next from rs into @userid
        end
        close rs
        deallocate rs

        --保存新值
        declare rs cursor for
            select userid from inserted
        open rs
        fetch next from rs into @userid
        while @@fetch_status=0
        begin
            if update(用户名)
            begin
                if(@userid='admin')
                begin
                    raiserror('此用户名禁用!',10,1) with nowait
                    rollback
                    return
                end -- www.jbxue.com
                insert into new_users(userid) values (@userid)
            end
            fetch next from rs into @userid
        end
        close rs
        deallocate rs
    END

    说明:
    在用INSERT、DELETE、UPDATE更新表时,如果触发器执行的操作失败,对表的操作也会回滚,并提示触发器程序产生错误的位置与原因。

  • 相关阅读:
    Leetcode Substring with Concatenation of All Words
    Leetcode Divide Two Integers
    Leetcode Edit Distance
    Leetcode Longest Palindromic Substring
    Leetcode Longest Substring Without Repeating Characters
    Leetcode 4Sum
    Leetcode 3Sum Closest
    Leetcode 3Sum
    Leetcode Candy
    Leetcode jump Game II
  • 原文地址:https://www.cnblogs.com/linuxnotes/p/3409725.html
Copyright © 2011-2022 走看看