一种SqlServer防止误删全表的触发器设置方法

1.设计思路说明

0.通过一个统计表,用来记录你的关键业务表的记录数;每次进行删除操作时,通过创建设置的触发器,检索你当前操作会造成影响记录行数和统计表种对应的记录数进行比对,如果两者相等或者你的基础统计表没有初始化记录数,则回滚事务。然后,触发器承担着更新统计表对应记录数的职责。
1.创建一个统计表,用来记录你的行记录,比如我的表名叫“T_WS_FUNC_FORBIDDELTABLE”,字段包含TABLENAME(varchar),NUM_RECORD(bigint),TIME_CHANGE(datetime)。TABLENAME存储你的关键业务表名,NUM_RECORD表示关键业务表的记录数。
2.创建如下触发器,详情见代码注释。

2.触发器 实现具体代码

USE [ASRS_ZZ_ZT_1]
GO
/****** Object:  Trigger [dbo].[TR_TRANS_A_DI_LPT]    Script Date: 2019/4/11 0:09:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--Date:2019-4-10,2019-4-11
--Author:LJS,LJS
--Description:       1.禁止数据表[T_TRANS_LOG_PALLETID_TRACK]删除全部数据记录;
--                   2.记录删除/插入操作后,[T_TRANS_LOG_PALLETID_TRACK]表的数据行数;
CREATE TRIGGER 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值