环境 WINDOWS 2003+SQL 2005
用途:有表A,B
表A记录用户的ID
A:id time
a a1
b b1
c c1
表B记录修改的字段
B: id1 id2
aa aa1
bb bb1
cc cc1
表A和表B没关联,
触发器功能:当发现B表中的字段是有A表中的ID为a的用户改动时,阻止字段修改,并返回消息,如果不是a用户正常运行
用途:有表A,B
表A记录用户的ID
A:id time
a a1
b b1
c c1
表B记录修改的字段
B: id1 id2
aa aa1
bb bb1
cc cc1
表A和表B没关联,
触发器功能:当发现B表中的字段是有A表中的ID为a的用户改动时,阻止字段修改,并返回消息,如果不是a用户正常运行
INSERT tb SELECT 1
go
create TRIGGER t_test ON tb
instead OF UPDATE
AS
DECLARE @tmp int
SELECT @tmp=id FROM inserted
IF @tmp=10
PRINT '不能为10'
ELSE
UPDATE tb SET id=(SELECT id FROM inserted)
GO --测试
UPDATE tb SET id=10
SELECT * FROM tb
因为需要先判断日志表A再判断B表字段是否被修改,然后再触发触发器
既然B表与A表没关联,在仅对B表进行操作时,你怎么知道对B表进行改动的是A表中的哪个ID操作的呢?