不允许删除行

时间:2017-01-28 21:25:02

标签: sql sql-server

我正在阅读触发器的一些代码。

CREATE TRIGGER No_DeleteCustomers
ON Customers
INSTEAD OF DELETE
AS
    IF @@ROWCOUNT = 0 
       RETURN

    RAISERROR('No deleting allowed', 11, 1)

但是我很困惑... isn' t @@ROWCOUNT用于显示最后一个语句中受影响的行数...这是如何阻止我从表中删除行的?

1 个答案:

答案 0 :(得分:0)

让我们一步一步地浏览触发器的代码,以演示其工作原理:

IF @@ROWCOUNT = 0                  -- if the number of rows to be deleted is 0 then...
    RETURN                         -- return
                                   -- if still running... 
RAISERROR('No deleting allowed', 11, 1)  -- raise an error to the caller

希望这有帮助!