SQL Server 触发器 一点点真实应用举例

本文介绍如何使用SQL触发器实现主从表数据的一致性管理,当删除主表T_B_Dish中的记录时,通过触发器同步删除从表T_B_DISH_AR中相关联的数据。

参考1: https://www.cnblogs.com/karkash/p/12269907.html

参考2: https://blog.youkuaiyun.com/sxrenchao/article/details/42969367

数据库中有两主从表

表1 T_B_DISH:

表2 T_B_DISH_AR:

最先想着单独删除表1的数据, 同时触发也删除表二相关的数据:

delete from T_B_Dish where fDishID=''

参考网上信息编写触发器如下

CREATE TRIGGER tgr_dish on T_B_Dish
FOR DELETE
AS
BEGIN
  DECLARE @fDishID varchar(50)
  SELECT @fDishID= fDishID from deleted
  DELETE T_B_DISH_AR WHERE fDishID= @fDishID
END
GO

也存在一次性删除表1的数据,同时触发删除所有表2的数据:

delete from T_B_Dish

参考网上信息编写触发器如下

create trigger tgr_dish
on T_B_Dish
for delete
as
  declare @fDishID varchar(20);
  declare cur_dish insensitive cursor 
    for select fDishID from deleted
  open cur_dish
  fetch next from cur_dish into @fDishID
    while @@FETCH_STATUS <> -1
    begin
      delete T_B_DISH_AR where fDishID= @fDishID
      fetch next from cur_dish into @fDishID
   END
  close cur_dish
  deallocate cur_dish
GO

满足使用需要,先记录,后期再补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值