我有一个父表(评估),其中有两个子表,定义了1对1关系。为了确保永远不会添加没有父条目的子行,我想在这种情况下向子表添加插入触发器(ConsequenceAssessment)。以下ConsequenceAssessment BeforeChange触发器触发但我找不到如何引用INSERTED行集。有一个OLD记录集可用于更新;但是,如何访问插入的行。以下是我最好的尝试 - 但是,ConsequenceAssessment表还没有包含新行,因此触发器总是遇到RaiseError。
更新:刚刚发现我可以在Access(新手误解)中的一对一关系上强制执行参照完整性。我仍然想知道如何访问更新的记录集。对于MS SQL Server,这是通过INSERTED表实现的,该表在INSERT触发器的范围内可用。那么,MS Access中的等价物是什么。
答案 0 :(得分:1)
在Before Change数据宏中,onModelChanged: {
currentIndex = Qt.binding( function(){return testClassInstance.testIndex} )
}
引用新值,[fieldname]
引用旧值(对于插入,它将为Null)。
在您的特定情况下,[old].[fieldname]
似乎是该表的主键,而不是引用[ConsequenceAssessment].[id]
(父)表的外键。因此,查找只是在父表中搜索错误的键值。