create trigger tr_process on bill
for insert,update
as
if update(ifupdate) or updatedate(updatedate)
return
update a set ifupdate=1,updatedate=getdate()
from bill a, inserted i
where a.主键=i.主键
可以用游标测试是否有更新 如果有更新就执行操作 否则不执行操作
CREATE TRIGGER TRI_TEST ON [数据表]
FOR UPDATE
AS
IF UPDATE([字段])
BEGIN
DECLARE @INSERT CHAR(10) --新数据
DECLARE @DELETE CHAR(10) --原来的数据
DECLARE CUR_INSERT CURSOR
FOR SELECT 名称 FROM INSERTED
OPEN CUR_INSERT
FETCH NEXT FROM CUR_INSERT INTO @INSERT
CLOSE CUR_INSERT
DEALLOCATE CUR_INSERT
DECLARE CUR_DELETE CURSOR
FOR SELECT 名称 FROM DELETED
OPEN CUR_DELETE
FETCH NEXT FROM CUR_DELETE INTO @DELETE
CLOSE CUR_DELETE
DEALLOCATE CUR_DELETE
IF @INSERT <>@DELETE --比较是否有更新
-------------
--所要的操作--
-------------
END
GO
这样写可以,但是必须在条件那里把所有的字段加上更新前与更新后的比较,所以比较麻烦
update a set ifupdated=1,upddate=getdate()
from trade a, inserted i,deleted d where a.td_id=i.td_id
and i.td_id=d.td_id
and i.maker<>d.maker
。。。。。。