触发器和删除操作

鼓手 2006-04-26 07:55:48
问题:

1.在触发器和在程序中作删除操作哪个更好一点。请解释下理由。
2.怎么作表间关联删除操作。

谢谢~!!
...全文
127 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
云中客 2006-04-26
  • 打赏
  • 举报
回复
如果操作比较频繁,触发器可能对数据库性能造成一定的影响
所以还是建议直接在程序中编写或者使用存储过程来实现
fcloudo 2006-04-26
  • 打赏
  • 举报
回复
我以前喜欢用触发器删除,但是逐渐感觉到还是放在前台删除比较好维护。后台的操作都是隐性的,难以维护,也不直观。比如一个员工表A,一个员工奖惩记录表B,一个员工考勤表C,B和C肯定都是有外码参照A的,那么在前台员工对象的删除方法中,一定是先删除关联的B、C表相关记录,提交成功后再删除A表记录。这种业务逻辑就封装在前台的对象中了,整个项目中也就这一个地方封装了这个逻辑,便于维护。数据库中尽量少放业务逻辑,除非是大批量的数据处理。另外,我也不喜欢在外码上做级联删除,理由同样,这种操作是隐性的,不利于维护。
OracleRoob 2006-04-26
  • 打赏
  • 举报
回复
1、根据业务处理的需要不同而选择不同的处理方式。比如说:在前台程序控制不能实现的功能,而用触发器又非常容易的可以考虑用触发器。但当触发的频率或次数很高的时候,就要比较一下哪种方式更适合数据库服务器的配置和实际情况。

2、通过创建表之间的关系中设置级联删除来实现,或者也可以用触发器完成。
但在SQL Server 2000中两个表之间建立级联删除或更新只能建一次,不能建多次。如果需要建立多次,除第一次外其它的都需要通过触发器实现。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧