-1

问题是创建一个触发器,该触发器仅在旧记录与新记录不同时才更新记录。我可以得到一些帮助吗?我什至不知道如何开始语法除了

CREATE TRIGGER update_marketingliste
ON marketing_list FOR UPDATE
AS
BEGIN

    SELECT * FROM INSERTED
END
4

1 回答 1

0

我不确定架构是什么,但下面的示例代码应该可以帮助您了解如何做到这一点。

设置 NOCOUNT ON GO

创建表测试(col1 int 主键,col2 int)去

CREATE TRIGGER trg_test_upd on test INSTEAD OF UPDATE AS BEGIN

            IF  EXISTS (
                                SELECT * 
                                FROM Deleted  del -- old value
                                INNER JOIN Inserted ins  -- new value
                                on del.col1 = ins.col1 
                                and del.col2 = ins.col2)
            BEGIN 

                PRINT 'No Update'
                RETURN  --if old value is same as new value dont update
            END 
            ELSE 
            BEGIN 
                            UPDATE t1
                            set col2  = i.col2
                            from dbo.test t1 
                            inner join inserted i 
                            on t1.col1 = i.col1 

            END 

结束

插入测试 (col1, col2) select 10, 10 go

更新测试集 col2 = 200 其中 col1 = 10

从测试中选择 *

--这不会做更新更新测试集col2 = 200

掉落表测试

于 2012-11-10T21:58:09.793 回答