如何在MS SQL 2005中创建触发器

时间:2010-10-19 08:23:57

标签: sql-server triggers

我需要更新记录状态(字段名称IsActivate - 它保存记录的状态)但是需要首先检查数据是否在另一个表中使用(意味着表与另一个表有关系)。如果数据我要更新的是在另一个表中使用,不允许更新,否则应该更新。如何使用MS SQL 2005创建触发器来实现这种方法?或者这可以通过SP实现?如何?

1 个答案:

答案 0 :(得分:2)

如果我是你,我会避免使用触发器。您可以在SP中轻松完成此操作。

用于更新记录的SP应该执行以下操作: -

  • 我假设您要检查的值正在传递给更新SP,可能在参数中@value
  • @value
  • 之类的SELECT语句中使用SELECT @result = count(1) FROM tableToCheck WHERE columnToCheck = @value
  • 如果@result = 0,请继续并触发现有的UPDATE声明
  • 如果@resul t<> 0,在您的业务场景中执行您需要做的任何事情,例如更新输出参数以指示您的更新失败

如果您想知道上述逻辑的语法,如果您使用的是SQL Server,则可以查找MSDN;如果使用MySQL,则可以查找MySQL docs;如果您使用的话,可以查找Oracle help使用Oracle。如果是其他任何引擎,只需谷歌“CREATE PROCEDURE <engineName>

然后,如果您对语法有任何具体问题,请随时将它们与您的代码一起发布,我们很乐意为您提供帮助!!