📄 triggerdemo3.sql
字号:
/*
文件名称: TriggerDemo3.sql
目 的: 示范如何使用 AFTER 触发程序
*/
USE 北风贸易
GO
if exists (select * from dbo.sysobjects where id = object_id(N'dbo.InsertUpdateTrigger') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger dbo.InsertUpdateTrigger
GO
-- 为「章立民工作室」数据表建立一个由新增或更新作业引发执行的 AFTER 触发程序
CREATE TRIGGER InsertUpdateTrigger ON 章立民工作室
AFTER INSERT,UPDATE
AS
IF (SELECT count(*) FROM inserted WHERE 起薪 < 10000) > 0
BEGIN
RAISERROR ( '起薪必须小于 10000',16,1)
ROLLBACK TRANSACTION
END
IF (SELECT count(*) FROM inserted WHERE 起薪 > 目前薪资) > 0
BEGIN
RAISERROR ( '起薪必须小于目前薪资',16,1)
ROLLBACK TRANSACTION
END
IF (SELECT count(*) FROM inserted WHERE 雇用日期 > 加薪日期) > 0
BEGIN
RAISERROR ( '雇用日期必须小于加薪日期',16,1)
ROLLBACK TRANSACTION
END
IF (SELECT count(*) FROM inserted
WHERE DATEDIFF(yy,出生日期,GETDATE()) < 20) > 0
BEGIN
RAISERROR ( '年龄不可以小于 20 岁',16,1)
ROLLBACK TRANSACTION
END
IF (SELECT count(*) FROM inserted
WHERE 部门 NOT IN ('生产制造部','行销部','财务部','会计部','业务部','资讯部')) > 0
BEGIN
RAISERROR ( '部门不正确',16,1)
ROLLBACK TRANSACTION
END
GO
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -