7. 触发器
触发器是一种特殊的存储过程,它在表的数据发生变化时发生作用,用于维护数据的完整性。
触发器可以再INSERT/UPDATE/DELETE三种操作后触发。
7.1. 创建触发器
CREATE TRIGGER S_insert --INSERT触发器
ON STUDENT FOR INSERT
AS
DECLARE @S_no VARCHAR(4),
@S_cno INT
SELECT @S_no = SNO,@S_cno = CNO
FROM INSERTED
IF(LEFT(@S_no,2) != '97')
BEGIN
ROLLBACK TRANSACTION
RAISERROR('确认后在输入',16,1,@S_no)
END
CREATE TRIGGER S_delete --DELETE触发器
ON STUDENT FOR DELETE
AS
DECLARE @rowcount int
SELECT @rowcount = @@ROWCOUNT
IF @rowcount >1
BEGIN
ROLLBACK TRANSACTION
RAISERROR('删除错误',16,1,@rowcount)
END
7.2. 删除触发器
DROP TRIGGER trigger_name