第二十二章 SQL命令 CREATE TRIGGER(二)
SQL触发器代码
如果LANGUAGE SQL(默认),被触发的语句是一个SQL过程块,包括一个SQL过程语句后跟一个分号,或者关键字BEGIN后跟一个或多个SQL过程语句,每个SQL过程语句后跟一个分号,最后以END关键字结束。
被触发的操作是原子的,它要么完全应用,要么根本不应用,并且不能包含COMMIT或ROLLBACK语句。
关键字BEGIN ATOMIC与关键字BEGIN是同义词。
如果语言是SQL, CREATE TRIGGER语句可以选择包含引用子句、WHEN子句和/或UPDATE OF子句。
UPDATE OF子句指定,只有在对为该触发器指定的一个或多个列执行UPDATE时,才应该执行该触发器。
带有LANGUAGE OBJECTSCRIPT的CREATE TRIGGER语句不能包含这些子句。
SQL触发器代码作为嵌入式SQL执行。
这意味着IRIS将SQL触发器代码转换为ObjectScript;
因此,如果查看与SQL触发器代码对应的类定义,将在触发器定义中看到Language=objectscript。
在执行SQL触发器代码时,系统会自动重置(NEWs)触发器代码中使用的所有变量。
在执行每条SQL语句之后 IRIS会检查SQLCODE


.png)
重要参数:
任务运行所在的 命名空间:%SYS
任务类型:运行传统任务
执行代码:do ##Class(%SYS.Journal.File).PurgeAll().png)
.png)
.png)

