大家好,谢谢你们的回答和评论。
我有一个包含多个字段的表,其中包括versionlast_modifiedmodified_by
我在写一个触发器:
每次/任何更新后将version增加1,
last_modified设置为当前时间戳,
将进行最新更改的用户的ID设置为modified_by,然后
通过发出信号(在这种情况下),防止程序员忽略/忘记在update语句中设置modified_by = userid
我怎样才能做到这一点?
我试着检查是否isnull(NEW.modified_by),但后来发现NEW.modified_by的值与OLD.modified_by的值相同,如果它没有受到影响。另外,检查NEW.modified_by是否等于OLD.modified_by也不太合适,因为它可能是用户修改了先前由他自己修改的记录。
有没有办法确定哪些字段受update语句的影响?或者某个字段(modified_by)受到影响?

最佳答案

我找不到任何允许您检查传入信息以查看哪些字段受到影响的信息。虽然我知道您试图在触发器级别停止此问题,但可能需要谨慎地要求所有表写入都经过一个存储过程。这样就可以要求用户字段。
如果不可能的话,我想你可能需要耍点小把戏。例如,您可以要求将用户id写入两个字段(为此创建一个空白的额外列)。然后,将虚拟列中的用户id与正在更新的用户id进行比较。一旦确定是否需要修改用户id,请再次清空虚拟列。它不漂亮,但能把工作做好。

08-04 14:49