明天的明天 永远的永远 未知的一切 我与你一起承担 ??

是非成败转头空 青山依旧在 几度夕阳红 。。。
随笔 - 1277, 文章 - 0, 评论 - 214, 阅读 - 321万
  博客园  :: 首页  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

用触发器来自动实时备份Sql重要表数据!!

Posted on   且行且思  阅读(1377)  评论(0编辑  收藏  举报
在数据库有一个比较重要的全局表,为了防止误操作,使用触发器自动生成实时备份数据

SQL语句如下:


--原表
if exists (select * from dbo.sysobjects where id = object_id(N'[Veg_Enum]'and OBJECTPROPERTY(id, N'IsUserTable'= 1)
drop table [Veg_Enum]
GO

CREATE TABLE [Veg_Enum] (
    
[E_ID] [int] IDENTITY (11NOT NULL ,
    
[E_Name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF__Veg_Enum__E_Name__6497E884] DEFAULT ('枚举名称'),
    
[E_Type] [int] NOT NULL CONSTRAINT [DF__Veg_Enum__E_Type__658C0CBD] DEFAULT (0),
    
[E_TypeName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF__Veg_Enum__E_Type__668030F6] DEFAULT ('枚举类型名称'),
    
[E_Value] [int] NOT NULL CONSTRAINT [DF__Veg_Enum__E_Valu__6774552F] DEFAULT (0),
    
[E_Parent] [int] NOT NULL CONSTRAINT [DF__Veg_Enum__E_Pare__68687968] DEFAULT (0),
    
[E_TypeParent] [int] NOT NULL CONSTRAINT [DF__Veg_Enum__E_Type__695C9DA1] DEFAULT (0),
    
[O_ID] [int] NOT NULL CONSTRAINT [DF_Veg_Enum_O_ID] DEFAULT (0),
    
[O_Name] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    
[O_Code] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
    
[IsActive] [tinyint] NOT NULL CONSTRAINT [DF__Veg_Enum__IsActi__6A50C1DA] DEFAULT (0),
    
[F1] [int] NOT NULL CONSTRAINT [DF__Veg_Enum__F1__6B44E613] DEFAULT (0),
    
[F2] [int] NOT NULL CONSTRAINT [DF__Veg_Enum__F2__6C390A4C] DEFAULT (0),
    
[F3] [int] NULL ,
    
[F4] [int] NULL ,
    
[F5] [int] NULL ,
    
[F6] [int] NULL ,
    
[F7] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
    
[F8] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
    
[F9] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
    
[F10] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
    
[F11] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
    
[F12] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
    
[CreateTime] [datetime] NOT NULL CONSTRAINT [DF__veg_Enum__Create__6D2D2E85] DEFAULT (getdate()),
    
[B_date] [datetime] NULL ,
    
[E_Date] [datetime] NULL ,
    
CONSTRAINT [PK_VEG_ENUM] PRIMARY KEY  CLUSTERED 
    (
        
[E_ID]
    )  
ON [PRIMARY] 
ON [PRIMARY]
GO



--备份表,注意多了个PKID字段
if exists (select * from dbo.sysobjects where id = object_id(N'[Veg_Enum_BAk]'and OBJECTPROPERTY(id, N'IsUserTable'= 1)
drop table [Veg_Enum_BAk]
GO

CREATE TABLE [Veg_Enum_BAk] (
    
[PKID] [int] IDENTITY (11NOT NULL ,
    
[E_ID] [int] NOT NULL ,
    
[E_Name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF__Veg_Enum__E_Name__6497E884000] DEFAULT ('枚举名称'),
    
[E_Type] [int] NOT NULL CONSTRAINT [DF__Veg_Enum__E_Type__658C0CBD000] DEFAULT (0),
    
[E_TypeName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF__Veg_Enum__E_Type__668030F6000] DEFAULT ('枚举类型名称'),
    
[E_Value] [int] NOT NULL CONSTRAINT [DF__Veg_Enum__E_Valu__6774552F00] DEFAULT (0),
    
[E_Parent] [int] NOT NULL CONSTRAINT [DF__Veg_Enum__E_Pare__68687968000] DEFAULT (0),
    
[E_TypeParent] [int] NOT NULL CONSTRAINT [DF__Veg_Enum__E_Type__695C9DA1000] DEFAULT (0),
    
[O_ID] [int] NOT NULL CONSTRAINT [DF_Veg_Enum_O_ID00] DEFAULT (0),
    
[O_Name] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    
[O_Code] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
    
[IsActive] [tinyint] NOT NULL CONSTRAINT [DF__Veg_Enum__IsActi__6A50C1DA00] DEFAULT (0),
    
[F1] [int] NOT NULL CONSTRAINT [DF__Veg_Enum__F1__6B44E61300] DEFAULT (0),
    
[F2] [int] NOT NULL CONSTRAINT [DF__Veg_Enum__F2__6C390A4C00] DEFAULT (0),
    
[F3] [int] NULL ,
    
[F4] [int] NULL ,
    
[F5] [int] NULL ,
    
[F6] [int] NULL ,
    
[F7] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
    
[F8] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
    
[F9] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
    
[F10] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
    
[F11] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
    
[F12] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
    
[CreateTime] [datetime] NOT NULL CONSTRAINT [DF__veg_Enum__Create__6D2D2E85000] DEFAULT (getdate()),
    
[B_date] [datetime] NULL ,
    
[E_Date] [datetime] NULL ,
    
CONSTRAINT [PK_Veg_Enum_BAk] PRIMARY KEY  CLUSTERED 
    (
        
[PKID]
    )  
ON [PRIMARY] 
ON [PRIMARY]
GO


/****** 对象: 触发器 dbo.Trigger_SynTradeTypeForInsertOrUpdate    脚本日期: 2007-3-4 21:33:23 ******/




ALTER        TRIGGER Trigger_SynVeg_EnumTermForInsertOrUpdate
ON veg_Enum
FOR Insert,Update
AS

       
BEGIN TRAN
        
--update veg_Enum set O_Name=(cast(E_TypeParent as nvarchar(10))+'年'+cast(E_Value as nvarchar(10))+'月')
        -- where  E_Type=2001  and E_ID   in (select E_ID from inserted)


          
insert into dbo.Veg_Enum_BAk
                (
                    E_ID,E_Name,E_Type,E_TypeName,
                    E_Value,E_Parent,E_TypeParent,O_ID,
                    O_Name,O_Code,IsActive,F1,
                    F2,F3,F4,F5,
                    F6,F7,F8,F9,
                    F10,F11,F12,CreateTime,
                    B_date,E_Date
                )
            
select  E_ID,E_Name,E_Type,E_TypeName,
                E_Value,E_Parent,E_TypeParent,O_ID,
                O_Name,O_Code,IsActive,F1,
                F2,F3,F4,F5,
                F6,F7,F8,F9,
                F10,F11,F12,CreateTime,
                B_date,E_Date
                
from Veg_Enum where E_ID in (select E_ID from inserted)
        
     
IF (@@ERROR <> 0)
         
Begin
         
ROLLBACK TRAN
                
RAISERROR ('同步数据时出错!'161)
               
Return 
         
End
     
COMMIT TRAN 







GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO


 
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示