问题描述
- SQL server 2008 触发器
-
sql server 中创建触发器,当表中的任意一列的数据更新时除了read_flag,将read_flag的置为0,这个触发器怎么写,
CREATE TRIGGER trig_wmwhse4_SKU
on wmwhse4.SKU
instead of update
as
begin
if
(exists (select 1 from inserted a ,deleted b where a.STORERKEY = b.STORERKEY and a.SKU = b.SKU and a.read_flag=b.read_flag ))
update SKU set SKU.read_flag='0'
where not exists (select 1 from deleted c where c.storerkey = sku.STORERKEY and c.SKU = sku.SKU and c.read_flag=sku.read_flag );
end;
我这样写,但是在更新read_flag时也会触发,怎样才能保证更新read_flag不触发呢?
解决方案
触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。
? 什么是触发器
??? 触发器对表进行插入、更新、删除的时候会自动执行的特殊存储过程。触发器一般用在check约束更加复杂的约束上面。触发器和普通的存储过程的区别是:触发器是当对某一个表进行操作。诸如:update、insert、d......
答案就在这里:sql server2008 触发器
时间: 2024-11-01 03:24:03