是我需要的触发器吗?

时间:2009-12-10 22:27:30

标签: sql-server triggers sql-server-express

我5年后刚回到田里,非常生锈,请耐心等待。我正在使用sql server express,我需要从单个表中捕获新的/更新的记录(实际上只有部分),以便插入到另一个表中。 (我将使用另一个表作为水晶报告的数据源。)我没有测试环境,必须构建并填充6个表来测试触发器。触发器是我唯一的选择吗?感谢您的任何意见。

4 个答案:

答案 0 :(得分:4)

如果你有2005/2008,你也可以像 this example 一样使用OUTPUT - 让你控制插页。

答案 1 :(得分:3)

首先,获得测试环境。如果没有人安全,你就无法工作。

你可以使用触发器,但你真的需要一个单独的表,或者查询或查看(不确定你是否可以在Express中有一个视图)作为报告的来源。

如果您选择使用触发器,请确保测试多行插入/更新/删除。需要将触发器设计为对一组数据进行操作,而不是一次一行。

答案 2 :(得分:0)

是的,你是对的。这就是它们的用途。

答案 3 :(得分:0)

触发器就像正则表达式一样,如果遇到问题并用任何一个解决它,现在你有2个问题。我只想从客户端代码中插入单个表中的单个事务。主要是因为像Triggers这样的副作用编程只是在向后寻求问题。如果您不小心插入了一些不良数据并触发了触发器,则无法轻松撤消触发器的操作。触发器应该是解决方案或最后的手段。插入不再是orthogonal,这导致很难维护代码。有很多更好的设计决策,比如其他人提到的视图,如果您的数据库支持它们,Materialized Views是更好的解决方案。