源代码

  1. --触发器
  2. --语法:
  3. --Create Trigger tr_触发器名称
  4. --ON After(for)/Instead of 增加删除(delete)修改
  5. --AS
  6. --任意的逻辑代码 --存储过程
  7. --GO
  8. --IF EXISTS(SELECT *FROM sysobjects WHERE name='tr_grade_insert')
  9. --DROP TRIGGER tr_grade_inserrt
  10. --GO
  11. --CREATE TRIGGER tr_grade_insert
  12. --ON grade FOR INSERT --为grade表创建触发器,在你对grade表进行插入操作后触发
  13. --AS
  14. -- SELECT *FROM
  15. --GO
  16. --INSERT INTO grade VALUES('')
  17. --SELECT *FROM INSERTED
  18. --SELECT *FROM DELETED
  19. ----两个临时表
  20. --IF EXISTS(SELECT *FROM SYSOBJECTS WHERE NAME='tr_grade_insert')
  21. -- DROP TRIGGER tr_grade_insert
  22. --GO
  23. --CREATE TRIGGER tr_grade_insert1
  24. --使用触发器模拟唯一键
  25. GO
  26. Create Trigger tr_grade_unique_className
  27. On grade after insert
  28. AS
  29. declare @cid int,@cname nvarchar(50)
  30. SELECT @cid=classid,@cname=className from inserted
  31. IF EXISTS((SELECT COUNT(*)FROM grade where className=@name)>1)
  32. begin
  33. print '班级名称已经存在,将被删除'
  34. delete from grade where classid=@cid
  35. end
  36. else
  37. print '插入成功'
  38. GO

逻辑图

图片.png

触发器的使用建议

图片.png