Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 我们如何手动运行触发器?_Sql Server 2008_Sql Server 2008 R2 - Fatal编程技术网

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

Sql server 2008 我们如何手动运行触发器?,sql-server-2008,sql-server-2008-r2,Sql Server 2008,Sql Server 2008 R2,我正在使用SQLServer2008R2 我想知道,当我从tabella将列从0更新为1时,是否可以运行触发器 提前感谢尝试以下方法: CREATE TABLE SomeTable ( ID INT PRIMARY KEY, Col1 INT NOT NULL, Col2 VARCHAR(100) NOT NULL ); CREATE TRIGGER TR_SomeTable ON SomeTable AFTER

我正在使用SQLServer2008R2

我想知道,当我从
tabella
将列从0更新为1时,是否可以运行触发器


提前感谢

尝试以下方法:

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更新到1时,触发器被触发。如果那是该表上更新后的
触发器-那么是的,它会在您更新该表上的任何内容时触发。这就是触发器的作用。但这不是“手动”运行触发器。。。
UPDATE
操作将触发触发器。您能给我一个示例,以便我可以实现它吗。@RGI:这有什么帮助?如果有人更新了Col1以外的任何列,那么您的条件仍然会产生true。我只是想在更新Col1时运行触发器,我遇到了一种情况,我想通过将Col1从0更新为1来运行触发器。