繁体   English   中英

防止更新的最佳方法

[英]Best way to prevent Update

我遇到一种情况,我们要防止针对特定情况更新表。

因此,对于95%的更新,我希望更新能够正常进行并更新所需的字段。...对于其他5%的用户,我希望阻止更新的发生。 这将基于更新中传递的数据以及表中当前填充的数据。

一个很好的例子是用户提交了今天的时间。 如果他们重新提交时间,我不希望数据库允许该更新发生,因为该用户的时间表已将其标记为已经提交了他们的时间,并且时间字段不是NULL。

我正在为此使用触发器,看来INSTEAD OF触发器将允许我处理此问题……基本上只有在该条件成立的情况下才进行更新。

有什么想法吗? 我很欣赏任何想法。

(让我知道是否清楚)

编辑:我很抱歉...这可能不是一个好例子。 我们重复使用一个更新程序来执行许多不同的更新,因此它是相当通用的。 我想弄清楚对于那些我不想执行更新的情况,最好的方法是什么。 使用触发器基本上是一种安全措施,可以防止某人意外覆盖先前输入的数据。 感谢您的投入

** EDIT2:**谢谢...经过仔细考虑,Martin是对的,我应该将逻辑构建到存储过程中。 有人告诉我说他们想使用触发器来处理此问题,但是你们都正确的……这不是处理此问题的正确方法。 再次感谢你的帮助。

谢谢,

小号

你不需要触发器。 例如

UPDATE Users 
 SET timefield = @timefield
WHERE UserId = @UserId AND [Day]=@day AND timefield IS NULL

将为您的示例工作。 然后,您可以检查受影响的行,以查看是否有任何实际更新。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM