拒绝从SQL Server 2008中删除一些行

时间:2015-02-20 12:01:37

标签: sql-server

我需要你的帮助。

我有3个列[Id], [Status], [Student]的表测试。

我想创建一个触发器来拒绝状态为3的删除行。

怎么做?

感谢。

1 个答案:

答案 0 :(得分:0)

这里有表格和触发器。

CREATE TABLE Test
(
    Id int PRIMARY KEY,
    Status int NOT NULL,
    Student varchar(100) NOT NULL

)
GO

CREATE TRIGGER DeletingStatus3TestIsNotAllowed
ON Test FOR DELETE
AS
    IF EXISTS (SELECT * FROM deleted WHERE Status = 3)
    BEGIN
        RAISERROR('Deleting rows with Status = 3 is not allowed', 16, -1)
        ROLLBACK
    END
GO

免责声明:使用触发器实施此业务规则可能不是一个好主意