如下的一个触发器,请教一个问题
CREATE trigger healMana on Player
for update
as
if update(MP) and exists(select 1 from inserted,deleted where inserted.ID=deleted.ID and isnull(inserted.MP,0) <> isnull(deleted.MP,0))
begin
update Player
set MP=inserted.MP+100
from Player,inserted,deleted
where Player.ID=inserted.ID and inserted.ID=deleted.ID and isnull(inserted.MP,0) <> isnull(deleted.MP,0)
end
这是个前几天我提出的问题,已经得到了解决,现有一后续问题,期望帮助
本意是当更新表的一列时,将更新后的值加100再更新回去,如此将形成一个更新后又更新的无限死循环,现在问题来了,如何使触发器本身最后自带的更新动作不会触发其if update(MP)条件呢?
------解决方案--------------------另建一表
------解决方案--------------------我觉得是你本身的逻辑有问题(为什么需要这样一直自加呢?)
可以设定一个值,比如MP到1000或到10000时就不更新.