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



Background

我有一个表Job_Test,其中有一个名为 Status 的列。列的值可以是七个值之一。

问题

如何阻止特定值New更改为Hold?但是,可以将其更改为其他六个值之一。

到目前为止我有什么

CREATE TRIGGER 
    dbo.statusCheck
ON 
    [dbo].job_test
FOR INSERT, UPDATE 
AS
  BEGIN
    SET NOCOUNT ON
      If (SELECT [status] FROM job_test) LIKE 'New'
      Begin
      ...
      End
END

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

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

如果发现任何错误,您也可以抛出错误

最新更新