triggerdemo3.sql

来自「T-SQL示例大全」· SQL 代码 · 共 49 行

SQL
49
字号
/* 
文件名称: 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 + =
减小字号Ctrl + -
显示快捷键?