如何创建一个数据发生变化时触发的触发器???
而不是ALTER TRIGGER updatebase ON dbo.Table for update如果现有数据是"OK" updata Table set Name='OK' 虽然表执行了Update 但其实值还没有变。
这种情况下我不要他触发。 就是原值跟update后的值不一样了,才触发,一样的情况下不触发。有没有办法实现这样的触发器!!
而不是ALTER TRIGGER updatebase ON dbo.Table for update如果现有数据是"OK" updata Table set Name='OK' 虽然表执行了Update 但其实值还没有变。
这种情况下我不要他触发。 就是原值跟update后的值不一样了,才触发,一样的情况下不触发。有没有办法实现这样的触发器!!
触发器中inserted表记录修改后的数据,deleted表记录修改前的数据
两个表做个关联判断一下值是否一致再做处理
问题我知道,,我是想说,触发器能不能实现我想要的这个功能,还是不能实现。 用update动作,肯定不能实现我要的功能了。
ALTER TRIGGER updatebase
ON dbo.tb
for update
as
update otherTB set col=a.col from(
select a.* from inserted a inner join deleted b on a.id=b.id
and a.col<>b.col) a where otherTB.id=a.id
ON dbo.Table1 for update
as
select *
from deleted as d
inner join dbo.Table1 as t on d.ID=t.ID and d.Name<>t.Name可以按以上方法判断
完整如下:ALTER TRIGGER updatebase
ON dbo.Table1 for update
as
if exists(select *
from deleted as d
inner join dbo.Table1 as t on d.ID=t.ID and d.Name<>t.Name)
begin
--your code
end
else
begin
--your code
end