通过存储过程来对更新数据的合法性进行检测,帮我看看除了下面的方法有没有更好的!
努力偷懒 2004-08-26 02:36:52 我是想通过触发器来对一个表的某个数据进行修改的时候,判断更新的数据是否符合某个条件,如果符合,那么这个更新就无效!下面是当test表的A2更新值为44的话就让这个更新无效,
采用的方法的思路是:
根据inserted中A2的值来进行数据判断
符合就把符合A2=44的记录删除,然后把原来的数据插回原来的地方.
我现在想知道有没有什么命令能不做这么麻烦的事,直接判断是否符合条件,符合就取消更新,否则就什么也不做的这么一个命令?
CREATE TRIGGER testa ON [dbo].[test]
FOR INSERT, UPDATE
AS
if ((select A2 from inserted)=44)
begin
delete test where A2=44
insert [test] (a1,a2,a3) select a1,a2,a3 from deleted
end