麒麟v10 上部署 TiDB v5.1.2 生产环境优化实践
532
2024-01-24
MSSQL中触发器类型概述:AFTER、BEFORE以及INSTEAD OF MSSQL中触发器特性是根据Data Definition Language(DDL)或Data Manipulation Lanugage(DML)语句定义的事件进行自动响应,自动完成一个或者多个指定的任务。
该特性提高了数据库的安全性,可以根据指定的时间或者特定条件来监控表的更新MSSQL支持三种类型的触发器,分别为AFTER,BEFORE和INSTEAD OF1、AFTER触发器:AFTER触发器是当定义事件发生时,由Database Engine 自动执行,且只能在事件完成后才执行。
AFTER触发器种类如下:* After Insert 触发器:在新行插入之后执行* After Update 触发器:在行更新之后执行* After Delete 触发器:在行删除之后执行例如:“`sql
CREATE TRIGGER Insert_LogON myTableAFTER INSERTASBEGIN INSERT INTO Log_Table (Action,UserName) VALUES (‘Insert’,USER_NAME() )
END 2、BEFORE触发器:BEFORE触发器在事件发生之前执行,用于检验或者更改表的数据,当定义的表类型为INSERT、UPDATE或者DELETE时,BEFORE触发器都可以使用BEFORE触发器种类如下:。
* Before Insert 触发器:在新行插入之前执行* Before Update 触发器:在行更新之前执行 * Before Delete 触发器:在行删除之前执行例如:```sqlCREATE TRIGGER check_stock
ON productBEFORE UPDATEASBEGIN IF UPDATE(stock) BEGIN IF (SELECT stock FROM inserted) BEGIN
RAISERROR (Stock cannot be lower than 5!, 16, 1) ROLLBACK TRANSACTION END END END
3、INSTEAD OF触发器:INSTEAD OF触发器可以在定义类型上支持INSERT、UPDATE、DELETE,且在数据库更新之前执行,但它不能在更新之后执行INSTEAD OF触发器种类如下:。
* Instead of Insert 触发器:在新行插入之前执行 * Instead of Update 触发器:在行更新之前执行* Instead of Delete 触发器:在行删除之前执行例如:
“`sqlCREATE TRIGGER Log_ActionON ProductsINSTEAD OF UPDATEASBEGIN INSERT INTO Log_Table (Action,UserName)
VALUES (‘Update’,USER_NAME() )END MSSQL中的触发器非常重要,它可以自动执行更新的任务,并且提升了数据库的安全性在选择触发器类型时,使用者需要合理地结合表的类型及具体的业务逻辑来选择,以保证系统的可靠性和性能。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。