【发布时间】:2017-08-28 19:16:04
【问题描述】:
我需要防止删除职业是“程序员”的用户。 所以,数据库表结构是:
TABLE Client
Id | Name | SSN | Occupation | Birthdate |
到目前为止,我创建的触发器如下所示:
CREATE TRIGGER Check_User_Occupation
ON dbo.Client
FOR DELETE
AS
BEGIN
IF(SELECT c.Occupation
FROM deleted AS d
INNER JOIN Client as c ON d.Id = c.Id) = 'Programmer'
BEGIN
PRINT 'YES';
ROLLBACK TRAN
RAISEERROR(SELECT 'Could not delete client because he is a programmer');
END
END
GO
我猜该行在可以比较之前就被删除了,但我不知道处理这个问题的正确方法。
感谢任何帮助!
【问题讨论】:
-
使用而不是删除触发器。
标签: tsql triggers sql-delete