数据库触发器或代码中的常用方法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库触发器或代码中的常用方法?相关的知识,希望对你有一定的参考价值。

我有一个表,我想记录我的应用程序的某些部分的活动。当在其他表中插入/更新记录时,将在此表中插入记录(可能在将来更新)。

EG

  • 如果在Orders表中插入了记录,则会在Log表中插入一个条目。
  • 如果在Booking表中插入记录,则会在Log表中插入一个条目。
  • 如果在Customers表中更新了记录,则如果日志表没有该客户的条目,则会在日志表中插入一个条目。

等等..

我应该在这些表上使用触发器来在Log表中添加记录,还是应该在我的代码中使用通用方法并在插入/更新活动发生时调用该方法?

我必须在我的应用程序的某些部分上执行此活动,因此可以有超过20个表格,我将在其中添加触发器或从我将调用方法的几个不同位置。

我正在使用SQL Server 2005和C#

什么是更好的,Trigger或A方法?

答案

如果有人能够使用TOAD,SSMS,查询分析器等技术在没有您的应用程序的情况下更新数据库,那么触发器会更好

另一答案

方法是比Trigger更好的选择。触发器通常 - 性能很重 - 在代码中不太明显,即隐藏起来 - 更难以调试和维护。 - 限制要传递给日志表的值

在优化代码,扩展逻辑和更易于维护方面,一种方法将为您提供许多优势

另一答案

由于这似乎是一项重要的任务,我将在RDBMS中使用触发器来确保不仅您的应用程序导致创建日志。

另一答案

这样的问题永远不会太晚, 通常,触发器减少数据库和代码的往返, 在你的情况下,要在C#中执行此操作,每个操作需要2次,一次用于操作(Insert),一次用于日志操作,当然,您需要对代码中的异常进行大量处理,以便您没有插入记录,您也可以记录不同的失败操作 作为触发器,您将数据一次发送到服务器,所有操作和处理都在那里完成,没有额外的连接 这是特别有用的,因为每个东西都是共享的,连接轮询是有限的。

以上是关于数据库触发器或代码中的常用方法?的主要内容,如果未能解决你的问题,请参考以下文章

php常用的魔术方法

JS中常用的一些事件(触发方法)

常用的方法

常用的jQuery事件方法

c#中Array类中的常用方法的功能

芯片功能的常用测试手段或方法几种?