我有疑问,如何在 Intersystems Cache 中执行类似触发器的操作。情况:例如,我有带有属性(列)valueA,valueB 的表 X,我想在 valueA 被 UPDATE 更改时更新 valueB。我已经定义了全局变量 ^VALUEBGENER 并使用它来增加它的 $SEQ 函数,我的想法是:
Class User.X Extends %Persistent [ ClassType = persistent, DdlAllowed, Final, Owner = {_SYSTEM}, ProcedureBlock, SqlRowIdPrivate, SqlTableName = X]
{
Property VALUEA As %Library.String(MAXLEN = 8) [ Required,SqlColumnumber = 1];
Property VALUEB As %Library.Integer(MAXVAL = 2147483647, MINVAL = -2147483648) [ Required,SqlColumnNumber = 1,SqlComputed,SqlColumnumber = 2, SqlComputeCode = {SET {valueB}=$SEQ(^VALUEBGENER)}, SqlComputeOnChange = %%UPDATE];
}
但它不起作用,当我改变 valuea 但它在我改变 valueb 时起作用,知道吗?PS对不起英语不好