db-使用递归触发器实现每次删除一条记录

本文介绍了一个SQL触发器的实现,用于在员工表上限制删除操作,确保一次只能删除一条记录,并在删除时检查并可能级联删除所属部门。触发器首先检查是否存在名为'delete_employee'的触发器,如果存在则删除它,然后创建新的触发器。
摘要由CSDN通过智能技术生成

/*判断表中是否有名为“delete_employee”的触发器*/
if EXISTS (SELECT name 
    FROM   sysobjects 
    WHERE  name = 'delete_employee' 
    AND type = 'TR')
/*如果已经存在则删除*/
drop trigger delete_employee
go
  create trigger delete_employee
   on 员工表
    after delete as
       declare @rowcount int
       select @rowcount = @@rowcount
  if @rowcount>1
       begin
          rollback transaction
       print('当前删除的记录条数大于一条,一次只允许删除一条')
       end
  if @rowcount=1
      begin
          declare @所属部门 varchar(50) 
          select @所属部门 = 所属部门 from deleted
      delete from 员工表 where 所属部门 = @所属部门
      end
go
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值