SQL Server 触发器

 时间:2024-10-14 11:50:10

后台管理人员如何写触发器,教你如何成为一位资深的后台管理人员。小水教你如何快速掌握出发器的编写。

工具/原料

SQL Server后台

触发器语法、基本知识

1、SQL SERVER中有三类触发器FOR、AFTER、INSTEAD OF1、AFTER 指定触发器仅在触发 SQL 语句中指定的所有操作都已成功执行时才被触发。所有的引用级联操作和约束检查也必须在激发此触发器之前成功完成。用英文简单理解就是 在...之后执行2、FOR的理解就是与AFTER类同,即AFTER(FOR)3、INSTEAD OF,在执行SQL语句前取代。INSREAD OF是指定执行 DML 触发器而不是触发 SQL 语句,因此,其优先级高于触发语句的操作。

2、FOR类的语法CREATE TRIGGER tf_name --自定义触发器的名称ON table --此处为表名,触发器的表名,意为在哪个表创建触发FOR INSERT --触发类型:INSERT、UPDATE、DELETE;分别意为插入时、更新时、删除时触发,依据英文意思理解即可ASBEGINSET NOCOUNT ON --可有可无DECLARE @.. ;--声明变量selectinsert--相应的select语句,insert语句(update语句、delete语句)SET NOCOUNT OFF--可有可无ENDGO

SQL Server 触发器

3、AFTER类的语法CREATE TRIGGERtf_nameONtableAFTER INSERT,UPDATE --定义都个触发,可以用逗号隔开ASBEGINSET NOCOUNT ON --可有可无DECLARE @.. ;--声明变量selectinsert...--相应的select语句,insert语句(update语句、delete语句)SET NOCOUNT OFF--可有可无ENDGO

SQL Server 触发器

4、INSTEAD OF类的语法CREATE TRIGGER tf_nameON tableINSTEAD OF INSERT --在表table中执行语句时,先执行此触发器的内容ASBEGINDECLARE @.. ;--声明变量selectinsert...--相应的select语句,insert语句(update语句、delete语句)ENDGO

SQL Server 触发器

插入型触发器的运用

1、--插入触发的应用,在表SL_NX中写入触发器,触发器名为SL_INSERT;接着定义分别定义了3个变量,通过在SL_NX表中插入的临时表inserted找到@SL_NO,@OS_NO;接着再通过@OS_NO关联MP_OS表找到@OS_ID;最后将OS_ID、OS_NO、SL_NO插入另一张表MP_OS_Z中。以下代码是可以直接复制到后台,然后改对应的名呀,表呀就可以用的。CREATE TRIGGERSL_INSERT--触发器名ONSL_NX--表名FORINSERT--插入触发ASBEGIN--定义变量OS_ID,OS_NO,SL_NO;并且插入MP_OS_Z表中,DECLARE @OS_ID VARCHAR,@OS_NO VARCHAR,@SL_NO VARCHAR;--在inserted表中查询已经插入的记录信息SELECT @SL_NO=SL_NO,@OS_NO=PO_NO FROM inserted;--inserted是临时表,从插入临时表中查找对应的信息SELECT @OS_ID=OS_ID FROM MP_OS WHERE OS_NO=@OS_NO;--查找关联的信息INSERT INTO MP_OS_Z (OS_ID,OS_NO,SL_NO)VALUES (@OS_ID,@OS_NO,@SL_NO);--将相关信息插入另外一张表去ENDGO

SQL Server 触发器

2、INSTEAD OF类插入触发器CREATE TRIGGER S_INSERTON SF_MNINSTEAD OF INSERTASBEGIN DECLARE @CID VARCHAR(50),@REM VARCHAR SELECT @CID=ID,@REM=REM FROM INSERTED INSERT INTO MF_GJ (ID,REM) VALUES (@CID,@REM)ENDGO

SQL Server 触发器

3、更新类触发器的应用CREATE TRIGGER ZL_UPDATEON ZL_NXAFTER UPDATEASBEGINUPDATE ZL_NX_Z SET REM=ZL_NX.REM FROM ZL_NX ZL INNER JOIN inserted i on ZL.ZL_NO=i.ZL_NOENDGO

SQL Server 触发器

4、删除类触发器的应用CREATE TRIGGER S_DELETEON SF_MNINSTEAD OF DELETEASBEGIN DECLARE @CID VARCHAR(50) --在deleted表中查询要删除的CID SELECT @CID=ID FROM DELETED --删除对应表的记录 DELETE TC_SM WHERE CID=@CID DELETE SF_MN WHERE CID=@CIDEND

SQL Server 触发器
  • 电脑如何设置Disk Defragmenter服务项启动类型?
  • sketchup VC++2015错误码0x80240037解决方法
  • 教你如何使用驱动精灵升级驱动
  • SQL SERVER如何开启TCP协议
  • 开机提速(关闭没用的启动项及服务)
  • 热门搜索
    科技新闻手抄报 迎国庆手抄报图片 元宵节手抄报简单好看 鼠年手抄报图片大全 文明校园手抄报 手抄报花边边框 一年级手抄报大全 关于抗击疫情的手抄报 美丽的祖国手抄报 快乐暑假手抄报