sql server2000中的trigger中没有before、for each row、new等关键字。下面我写了个,能实现你的功能,只是不知道有没有性能更好的写法。期待更佳的.... if exists(select * from sysobjects where name='Insert_Or_Update_sal') drop trigger Insert_Or_Update_sal go CREATE TRIGGER Insert_Or_Update_sal ON TEACHER FOR insert,update AS BEGIN declare @job char(8),@sal numeric(7,2),@eno numeric(4) --inserted是insert或update触发表临时表,参考下面帮助。 select @eno=eno,@job=job,@sal=sal from inserted if @job='教授' and @sal<4000 update teacher set sal=4000 where eno=@eno --下面的两句也可能完成这个功能,只是性能低一些。 -- if exists(select * from inserted where job='教授' and sal< 4000) -- update TEACHER set sal=4000 where job='教授' AND sal<4000 END