我使用的是Advantage Database Server 10。
我有一个包含两个字段的表:
FieldA字符串不为空FieldB字符串不为空
现在我需要一个触发器,它在插入新记录时用FieldA的值填充fieldB。
我的意图是通过以下代码使用"before insert“或"instead of insert”触发器:
UPDATE test set test2 = ( SELECT test1 FROM __new );但是对于这两个触发器,我得到的错误是fieldB不能为空。那么,我如何用触发器填充一个带有非空约束的字段呢?
发布于 2011-07-27 18:02:24
恐怕你不能。
在执行触发器之前检查NOT NULL约束!
您必须解除约束,并确保INSERT和UPDATE触发器中的值不为null,以模拟所需的行为。
另一种解决方法是将字段test2的默认值设置为某个虚拟值(可以使用表编辑器或sp_ModifyFieldProperty完成)。
https://stackoverflow.com/questions/6833736
复制相似问题