【发布时间】:2010-01-15 20:36:22
【问题描述】:
为了消除触发器的潜在问题,可以使用哪些替代方法来获得对 INSERT 操作触发的事件做出反应的相同功能?
我有一个需要在插入时添加一些附加值的数据库。 INSERT 由编译后的代码控制,不能更改。
示例:程序插入一个字符串,我需要从该字符串中为指向查找表的新字段提供一个整数。
如果有触发器的替代方案,请告诉我任何替代方案的利弊。主要原因是我们的数据库标准中不允许使用触发器。
SQL Server 2008 企业版
【问题讨论】:
-
您能否编辑您的问题以反映您使用的 SQL Server 版本。
-
您试图通过替代方法来避免哪些“潜在问题”,该方法可以执行触发器的作用?
-
取决于您需要实现多少逻辑,但您可能会查看默认值和计算列来做简单的事情
-
@Todd Moses:该规则目前会给您带来维护问题。作为开发人员,您的工作是提出解决方案并证明约束何时不合理。这是需要更改或至少规避规则以提供解决方案的情况之一。像这样的规则一开始就不应该存在,因为它们会产生像你现在面临的问题。
-
一个简单的“避免不必要的触发器”通常对于未来的大多数维护问题来说是一个足够好的指导方针。硬性规定的“从不使用触发器”是一条愚蠢的规则,应该在长期造成更多伤害之前尽快废除。
标签: sql-server triggers