zoukankan      html  css  js  c++  java
  • SQL server 使用触发器跨数据库备份数据

    create database TriggerTest
    
    create table transInfo2 --交易信息表
    (
       cardID     varchar(10) not null,  --卡号
       transType  char(4)     not null,  --交易类型(存入/支取)
       transMoney money       not null,  --交易金额
       transDate  datetime    not null   --交易日期
    )
    go
    
    create database TriggerDatabase
    use TriggerDatabase
    go
    
    create table transInfo --交易信息表
    (
       cardID     varchar(10) not null,  --卡号
       transType  char(4)     not null,  --交易类型(存入/支取)
       transMoney money       not null,  --交易金额
       transDate  datetime    not null   --交易日期
    )
    go
    
    --------------- 添加测试数据 ---------------
    insert into transInfo(cardID,transType,transMoney)
            values('10000','支取',200);
    
    --------------- 查看结果 ---------------
    select * from transInfo;
    go
    
    /* 实现: 当删除TriggerDatabase数据库transInfo表中的数据时,
             自动备份被清除的数据到TriggerTest数据库中的transInfo2表中
    */
    ------------------ delete 触发器 ------------------
    use TriggerDatabase
    go
    
    if exists (select * from sysobjects 
               where name='trig_delete_transInfo')
    drop trigger trig_delete_transInfo
    go
    
    create trigger trig_delete_transInfo
    on transInfo after delete  --  for | after
    as
       -- 如果数据库中,不存在 backupTable 表
       if not exists(select * from sysobjects 
                      where name='TriggerTest.dbo.transInfo2')
          insert into TriggerTest.dbo.transInfo2 select * from deleted --deleted临时表
       else
          insert into TriggerTest.dbo.transInfo2 select * from deleted
    go
    
    ------------------ 测试触发器 ------------------
    set nocount on
    
    delete from transInfo where cardid='10000'; --测试
    
    --查看结果
    use TriggerTest
    go
    select * from transInfo2

    此方法目前只适用于在同一台的服务器上的两个数据库的情况下使用

  • 相关阅读:
    Angular入门到精通系列教程(12)- 路由(Routing)
    Angular入门到精通系列教程(11)- 模块(NgModule),延迟加载模块
    error: file '/boot/grub/i386-pc/normal.mod' not found解决方案
    mysql常用查询
    mysql数据库表中随机生成时间
    成本分析报表
    弹窗维护字段POPUP_GET_VALUES
    返回上一个屏幕
    PM停机时间问题处理
    IP41
  • 原文地址:https://www.cnblogs.com/xuxw/p/3435194.html
Copyright © 2011-2022 走看看