我正在使用Advantage Database Server 10.
我有一张包含2个字段的表格:
FieldA字符串不为空 FieldB字符串不为空
现在我需要一个触发器,在插入新记录时使用FieldA的值填充fieldB。
我的目的是使用“before insert”或“而不是insert”触发器,使用以下代码:
UPDATE test set test2 = ( SELECT test1 FROM __new );
但是使用两个触发器我得到错误,fieldB不能为null。 那么 - 如何使用触发器填充非空约束的字段?
答案 0 :(得分:2)
我担心你不能。
在执行任何触发器之前,检查NOT NULL约束!
您必须解除约束并确保INSERT和UPDATE触发器中的值不为null,以模拟您所需的行为。
另一种解决方法是将字段test2
的默认值设置为某个虚拟值(可以使用表编辑器或sp_ModifyFieldProperty
完成)。