我们如何手动运行触发器?

问题描述:

我正在使用SQL Server 2008 R2。我们如何手动运行触发器?

我想知道当我从tablelA的列更新为0时,是否可以运行触发器?

在此先感谢

+2

你的意思是,手动?你可以写一个更新触发器,当更新某个列时触发,但这很难“手动触发触发器”。 – Mithrandir 2012-08-06 14:37:05

+0

是的手动意味着当我更新列值从0到1触发器触发。 – 2012-08-06 14:38:51

+1

如果这是该表上的'AFTER UPDATE'触发器 - 那么是的,只要您更新该表上的任何内容,它就会触发。这就是触发器的意图。但是这并不是“手动”运行触发器......“UPDATE”操作会触发触发器。 – 2012-08-06 14:39:54

尝试这样:

CREATE TABLE SomeTable 
(
    ID  INT   PRIMARY KEY, 
    Col1 INT   NOT NULL, 
    Col2 VARCHAR(100) NOT NULL 
); 

CREATE TRIGGER TR_SomeTable ON SomeTable 
AFTER UPDATE 
AS 
BEGIN 
    IF UPDATE(Col1) 
    BEGIN 
     UPDATE SomeTable SET Col2 = 'Col1 Changed' 
     WHERE ID IN 
     (
      SELECT ID FROM INSERTED i INNER JOIN DELETED d on i.ID = d.ID 
      WHERE d.Col1 = 0 AND i.Col1 = 1 
     ) 
    END 
END 
+0

@RGI:这应该如何帮助?如果有人更新Col1以外的任何列,那么您的情况仍然会生效。 – Mithrandir 2012-08-06 16:47:33

+0

我只是想运行触发器,当我将更新Col1, 我有一种情况,我想通过更新Col1从0到1运行触发器。 – 2012-08-06 18:56:06