SQL单元智能触发器

时间:2010-10-11 09:30:01

标签: sql sql-server triggers cell wise

是否可以创建特定的单元格明智触发器?

或者是

IF UPDATE(COLUMN) WHERE OTHER_COLUMN LIKE 'JT'

SQL Server 2008中的等价物?

得到第二个答案后

编辑 ---

IF not UPDATE(CurrentNo) --// Wanted to do like this : where series ='JT'
    return

IF not EXISTS(SELECT 'True'
              FROM Inserted i
              JOIN Deleted d ON i.Series = d.Series
              WHERE i.Series = 'JT' AND d.Series = 'JT')
    return

好像没错!请评论。

2 个答案:

答案 0 :(得分:1)

没有。没有办法以声明的方式做到这一点。您需要创建一个通用的Update触发器并在其中放入逻辑以立即返回IF NOT UPDATE (column)

如果感兴趣的列更新,那么您将查询inserteddeleted伪表,以便您处理满足您感兴趣条件的行。< / p>

答案 1 :(得分:0)

在表上指定触发器,而不是在行,列或单元格上指定。在触发器的主体内部,您可以访问INSERTED和DELETED表。您可以将它们连接在一起,以确定更新期间更改了哪些列。 SQL Server 2008(以及以前的版本)中提供的UPDATE()函数是用于确定列是否已更改的简写方法。