如何创建条件触发器以停止更新单元格

时间:2016-01-19 21:39:06

标签: sql sql-server triggers

背景

我有一个表<ol dir="rtl"> <li>Problem</li> <li>Something else</li> </ol> ,其中有一个名为Job_Test的列。列的值可以是七个值之一。

问题

如何阻止特定值Status更改为New?但是,它可以更改为其他六个值中的一个。

到目前为止我有什么

Hold

但是我不确定在哪里完成它。

1 个答案:

答案 0 :(得分:0)

INSTEAD OF个触发器可能对您有帮助。

CREATE TRIGGER dbo.statusCheck_InsteadOfUpdate 
ON statusCheck
INSTEAD OF UPDATE
AS
BEGIN
    UPDATE s SET
        s.[status] = i.[status],
        ... other fields to UPDATE ...
    FROM statusCheck s
    INNER JOIN INSERTED i ON i.ID = s.ID
    WHERE i.[status] <> 'Hold' AND s.[Status] <> 'New'
END

如果找到任何错误,你也可以抛出错误