• SqlServer触发器使用整理


    一、触发器的使用场景、优缺点

    1.强制业务规则和数据完整性

    SqlServer中提供了2中方案,约束(主键约束、外键约束、Not Null约束、唯一约束以及检查约束)和触发器

    触发器,可以编写T-sql代码,多表操作。

    如果检测到严重错误(例如,磁盘空间不足),则整个事务即自动回滚。

    2.触发器的优点

     1.触发器是自动的。当对表中的数据做了任何修改之后立即被激活。
       2.触发器可以通过数据库中的相关表进行层叠修改。
       3.触发器可以强制限制。

    3.触发器的作用

    强制数据库间的引用完整性
    级联修改数据库中所有相关的表,自动触发其它与之相关的操作
    跟踪变化,撤销或回滚违法操作,防止非法修改数据
    返回自定义的错误消息,约束无法返回信息,而触发器可以
    触发器可以调用更多的存储过程

    二、触发器的分类

    sql server包括三种常规类型的触发器:
    DML数据操纵语言(Data Manipulation Language, DML)触发器、
    DDL 数据库模式定义语言DDL(Data Definition Language)触发器
    登录触发器

    三、触发器使用说明

    instered表和deleted表,这两张是逻辑表也是虚表。由系统在内存中创建者两张表,不会存储在数据库中。
    两张表的都是只读的,只能读取数据而不能修改数据。
    这两张表的结果总是与被该触发器应用的表的结构相同,当触发器完成工作后,这两张表就会被删除。
    Inserted表的数据是插入或是修改后的数据

    deleted表的数据是更新前的或是删除的数据

    表操作Inserted逻辑表Deleted逻辑表
    新增记录(insert)存放增加的记录
    修改记录(update)存放更新后的记录存放更新前的记录
    删除记录(delete)存放被删除的记录

    四、触发器使用案例

    1.触发器语法

    1. --创建触发器的语法如下:
    2. CREATE TRIGGER [触发器名称] ON [表名称]
    3. FOR UPDATE -- 或DELETE、或INSERT
    4. AS
    5. --Transact-SQL(业务逻辑代码)
    1. --修改触发器语法
    2. ALTER TRIGGER [触发器名称] ON [表名称]
    3. FOR UPDATE -- 或DELETE、或INSERT
    4. AS
    5. --Transact-SQL(业务逻辑代码)
    6. --删除触发器语法
    7. drop trigger 触发器名称

    2.监听表update处理

    1. create trigger tri_memberinfo on memberinfo
    2. for update
    3. as
    4. begin
    5. declare @memberid int,@TdTeam nvarchar(100),@ZdTeam nvarchar(100),@bankid int;
    6. select @memberid=id,@TdTeam=tdteam,@ZdTeam=zdteam,@bankid=bankid from instered;
    7. --获取银行的
    8. declare @zdposition varchar(1000);
    9. select @zdposition=ZdPosition from Bank where id=@bankid;
    10. --修改数据表的团队或者战队
    11. update DataNum set TdTeam=@TdTeam ,ZdTeam=@ZdTeam,bankid=@bankid,ZdPosition=@zdposition where MemberID=@memberid;
    12. --print @memberid;
    13. end;

    更多:

    管理数据库引擎服务

    T-Sql创建数据库&修改排序规则

    使用sql语句创建修改SQL Server标识列

  • 相关阅读:
    CALL命令无法在PowerShell中使用
    Pinpoint--基础--01--介绍
    面试突击54:MySQL 常用引擎有哪些?
    发展之路是怎么样? 防爆机器人的未来发展之路是怎么样
    MySQL(六) 保证主从一致
    windows如何把已安装的nodejs高版本降级为低版本&node多环境
    cadence - 在allegro中出报告(Padstack Usage Report)来辅助制作orcad原理图封装
    如何在电脑上配置多个JDK环境
    MySQL数据库优化
    Rtsp转Flv在浏览器中播放
  • 原文地址:https://blog.csdn.net/u011127019/article/details/128018854