如何用触发器实现,删除或修改表时,如果"审核人"字段不是空,就禁止修改或删除,可以实现吗?
-------------
也就是实现审核后禁止修改的功能,判断的依据就是一个字段,比如字段名为:审核人,
如果这个字段有值,则说明审核了,不能删除或修改,如果这个字段为null或空字串,则说明没审核,可以修改或删除,如何实现呢?
以前没用过触发器,在前台程序中实现,感觉代码太多,每次保存修改时或删除时都要判断这条记录是否已经审核,代码不优化,所以想在触发器中实现,
1,我的想法可以实现吗?如何写代码.
2,我的想法思路对吗?类似于这种审核后禁写的功能,用触发器来实现合理吗?(我主要觉得在前台进行数据的删除或修改时,要先判断记录是否已审核,有点太麻烦了.代码也不严谨)顺便问:对于审核后禁写,还有更好的实现方法吗?
-------------
也就是实现审核后禁止修改的功能,判断的依据就是一个字段,比如字段名为:审核人,
如果这个字段有值,则说明审核了,不能删除或修改,如果这个字段为null或空字串,则说明没审核,可以修改或删除,如何实现呢?
以前没用过触发器,在前台程序中实现,感觉代码太多,每次保存修改时或删除时都要判断这条记录是否已经审核,代码不优化,所以想在触发器中实现,
1,我的想法可以实现吗?如何写代码.
2,我的想法思路对吗?类似于这种审核后禁写的功能,用触发器来实现合理吗?(我主要觉得在前台进行数据的删除或修改时,要先判断记录是否已审核,有点太麻烦了.代码也不严谨)顺便问:对于审核后禁写,还有更好的实现方法吗?
create trriger 触发器 on t
after update,delete
as
begin
if exists(select 1 from deleted where 审核人 is not null )
begin
rollback
print '禁止修改!'
end
end
on table
INSTEAD OF delete
as
begin
delete table from (select * from deleted where 审核人 is not null)
end
gocreate trigger triggername
on table
INSTEAD OF update
as
begin
update table
set ...
from inserted i
left join table a
on a.id = b.id
end