我有一个表,我想记录我的应用程序的某些部分的活动。当在其他表中插入/更新记录时,将在此表中插入记录(可能在将来更新)。
E.g。
等。
我是否应该在这些表上使用触发器在Log表中添加记录,或者我的代码中是否应该使用通用方法并在插入/更新活动发生时调用该方法?
我必须在我的应用程序的某些部分执行此活动,因此可以有超过20个表格,我将在其中添加触发器或从我将调用方法的几个不同位置。
我正在使用SQL Server 2005和C#
什么是更好的,Trigger或A方法?
答案 0 :(得分:4)
方法是比Trigger更好的选择。 触发器通常是 - 表现沉重 - 代码中不太明显,即隐藏起来 - 更难以调试和保持。 - 限制要传递给日志表的值
一种方法在优化代码,扩展逻辑和更容易维护方面会给你很多好处
答案 1 :(得分:2)
由于这似乎是一项重要任务,我将在RDBMS中使用触发器,以确保不仅您的应用程序会导致创建日志。
答案 2 :(得分:1)
如果有人能够使用TOAD,SSMS,查询分析器等技术在没有您的应用程序的情况下更新数据库,那么触发器会更好
答案 3 :(得分:0)
对于这样的问题永远不会太迟,
通常,触发器会减少数据库和代码的往返行程,
在您的情况下,要在C#中执行此操作,您需要为每个操作进行两次旅行,一次为操作(插入),一次为log操作,当然,您需要对代码中的异常进行大量处理,因此如果未插入记录,您可以处理此问题,还可以记录失败的不同操作
作为触发器,您只需将数据发送到服务器一次,所有操作和处理都将在此完成,而无需额外的连接
由于每件事都是共享的并且连接轮询受到限制,所以这特别有用。