如果值是0,则SQL触发器删除行

时间:2019-02-05 03:11:15

标签: sql-server tsql database-trigger

我正在尝试创建一个触发器,该触发器检查特定列的更新后的值是否为0。如果值为0,则应删除该行。我对触发器不是很熟悉。如果有人向我展示/解释它,我将不胜感激。这是我尝试过的:

CREATE TRIGGER [dbo].[after_update] 
   ON [dbo].[tbl_LagerPos]
   AFTER UPDATE
AS 
BEGIN
    DELETE FROM tbl_LagerPos WHERE Bestand = 0;
END
GO

此处Bestand是应检查的值是否为0。如果是,则应删除整行。我知道这正在检查整个表,基本上是错误的。所以我只需要用于特定记录。

1 个答案:

答案 0 :(得分:0)

请勿为此使用触发器。 对客户端进行检查。 您还可以向数据库添加列约束:

alter table dbo.Table1 add Column1 int not null constraint CHK_Column1 check (Column1 > 0);