zoukankan      html  css  js  c++  java
  • sql server 触发器开发

    sqlserver触发器学习视频教程:https://www.bilibili.com/video/BV1Wk4y1R7SY?from=search&seid=15709186386520522733

     

    创建触发器语法:

    create trigger tgr_name
    on table_name
    with encrypion –加密触发器
        for update...
    as
        Transact-SQL

    查询触发器语法:

    --查询触发器
    select * from sysobjects where xtype = 'TR'

    触发器是一种特殊类型的存储过程,主要是通过事件进行触发被自动调用执行的。

    SQL Server 中触发器可以分为两类:DML触发器和DDL触发器,

    其中DDL触发器它们会影响多种数据定义语言语句而激发,这些语句有create、alter、drop语句。

    DML触发器分为:

       1、 after触发器(之后触发)

            a、 insert触发器 b、 update触发器c、 delete触发器

       2、 instead of 触发器 (之前触发)

    其中after触发器要求只有执行某一操作insert、update、delete之后触发器才被触发,且只能定义在表上。而instead of触发器表示并不执行其定义的操作(insert、update、delete)而仅是执行触发器本身。既可以在表上定义instead of触发器,也可以在视图上定义。

    执行触发器会创建两个临时表:插入表(instered表)和删除表(deleted表)

     

    数据库操作对应临时表

    image.png

    简单触发器使用实例:执行插入操作室修改插入数据的一个字段值

    --创建insert插入类型触发器
    if (object_id('tgr_user_aliasname', 'tr') is not null)
        drop trigger tgr_user_aliasname
    go
    create trigger tgr_user_aliasname
    on t_user
        AFTER insert --插入触发
    as
        --定义变量
        declare @id NVARCHAR(50), @name varchar(20);
        --在inserted表中查询已经插入记录信息
        select @id = us_user_id, @name = us_user_name from inserted;
        set @name = @name + @id; 
        UPDATE t_user set us_alias_name=@name WHERE us_user_id=@id;
        PRINT('修改成功');
    go

     

  • 相关阅读:
    day14_集合框架1(ArrayList,LinkedList,HashSet)
    day13_String、StringBuffer、StringBuilder
    初识Java_day01
    关于局部内部类访问带有final修饰符的局部变量
    day03,day04_数组,循环(上)
    day09(下)_异常(上)
    day08_多态
    day11_多线程(多线程安全问题)
    day16_集合框架3(HashMap,TreeMap)
    day09(上)_内部类
  • 原文地址:https://www.cnblogs.com/widows/p/13474106.html
Copyright © 2011-2022 走看看