2010-07-14 98 views
1

我为插入,更新表写了一个触发器。对于每个插入和更新,在触发器中,我将比较'插入'表和 行'Deleted'表中的行。如何从表中动态选择列?

我需要获取受影响的列。这个怎么做?

A B C D 
1 2 3 5. 

我正在用B更新B的值,然后触发器会触发。在这种触发, 从删除的表,我可以得到:

A B C D 
1 2 3 5 

从插入的表格,我可以得到:

A B C D 
1 3 3 5 

我需要独自一人的B列。

如何做到这一点?
谢谢。

+0

改变实际上A,B,C,d是列和1,2,3,4-是值。我写得像一张桌子,但没有像那样展示。请不要混淆。 谢谢。 – Manoj 2010-07-14 08:05:17

回答

5

可以检查列是否已经由IF UPDATE(namehere)

CREATE TRIGGER [dbo].[Triggername] 
ON [dbo].[TableName] 
FOR UPDATE 
AS 

IF UPDATE(Columname) --If this column has changed 
BEGIN 
     --Your code here 
    END 
+0

呵呵,我是通过一个包含一个可怕的CASE声明的长答案的中途。忘了UPDATE()函数。很好的回答。 – Jamiec 2010-07-14 08:18:42