控制触发器何时被触发。
Trigger name [ Event = sqlevent, Foreach = foreach ] { //implementation }
其中foreach
是下列值之一:
row
— 该触发器由触发语句影响的每一行触发。
注意,TSQL
不支持行级触发器,因此Language
关键字的设置必须是objectscript
。row/object
— 此触发器由受触发语句或通过对象访问进行的更改影响的每一行触发。请注意,TSQL不支持行级触发器,因此Language
关键字的设置必须为objectscript
。这个选项定义了一个统一触发器,之所以这么叫,是因为它是由通过SQL或对象访问发生的数据更改触发的。
(相比之下,与其他触发器相比,如果在通过对象访问发生更改时使用相同的逻辑,则需要实现回调,如%OnDelete()
。)
statement
— 整个语句只触发一次触发器。
ObjectScript
和TSQL
都支持语句级触发器;
即Language关键字的设置分别为objectscript
或tsql
。控制何时触发触发器。
如果省略此关键字,则触发器为行级触发器。
TSQL
不支持行级触发器。
指定此触发器定义是否为内部触发器(不显示在类文档中)。
要指定此触发器定义为内部触发器,请使用以下语法:
Trigger name [ Event = sqlevent, Internal ] { //implementation }
否则,省略此关键字或将单词Not
放在关键字的前面。
内部类成员不会显示在类文档中。如果想让用户看到一个类,但不看到它的所有成员,这个关键字很有用。
如果省略此关键字,此触发器将显示在类文档中。
指定编写触发器的语言。
要指定编写触发器的语言,请使用以下语法:
Trigger NewTrigger1 [ Event = sqlevent, Language = language ] { //implementation }
其中language
是下列值之一:
objectscript
—此触发器用objectscript
编写(默认)。tsql
——这个触发器是在tsql
写的。如果使用此值,触发器必须是语句级触发器;也就是说,Foreach
关键字的设置必须是语句。此关键字指定编写触发器的语言。
如果省略这个关键字,语言就是ObjectScript。
指定存储受事件影响的行或语句的新值的转换表的名称。
要指定存储新值的转换表的名称,请使用以下语法:
Trigger name [ Event = sqlevent, OldTable = oldtable, NewTable = newtable ] { //implementation }
其中newtable
是此命名空间中的SQL表的名称。
每个触发器都可以通过转换表(由旧表和新表关键字指定)访问受事件影响的行或语句的旧值和新值。
NewTable
关键字的默认值为空。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有