CREATE TRIGGER [trg_we_up] ON [学生管理_学生登记] FOR UPDATE as UPDATE S_USERS SET code=a.id, OWNNAME=a.姓名, GROUPS=a.班级编号, roles=a.角色,PASSWORD=a.密码,USERNAME=a.姓名,joindate=a.录入时间 FROM deleted a where S_USERS.code = a.id
sdhdy兄: it's just the same as before your code script can't achieve the result 仍然需要二次更新
CREATE TRIGGER [trg_we_up] ON [学生管理_学生登记] FOR UPDATE AS UPDATE S_USERS SET code=id, OWNNAME=b.姓名, GROUPS=b.班级编号, roles=b.角色,[PASSWORD]=b.密码,USERNAME=b.姓名,joindate=b.录入时间 FROM S_USERS INNER JOIN deleted b ON S_USERS.code = b.id
CREATE TRIGGER [trg_we_up] ON [学生管理_学生登记] FOR UPDATE AS UPDATE S_USERS SET code=id, OWNNAME=b.姓名, GROUPS=b.班级编号, roles=b.角色,[PASSWORD]=b.密码,USERNAME=b.姓名,joindate=b.录入时间 FROM S_USERS INNER JOIN deleted b ON S_USERS.code = b.id
FOR UPDATE
as
UPDATE S_USERS
SET code=a.id, OWNNAME=a.姓名, GROUPS=a.班级编号, roles=a.角色,PASSWORD=a.密码,USERNAME=a.姓名,joindate=a.录入时间
FROM deleted a
where S_USERS.code = a.id
it's just the same as before
your code script can't achieve the result
仍然需要二次更新
我是第一次做 trigger
我发现 insert 和 delete操作都可以
update 来更新就不行
FOR UPDATE
AS
UPDATE S_USERS SET code=id, OWNNAME=b.姓名, GROUPS=b.班级编号, roles=b.角色,[PASSWORD]=b.密码,USERNAME=b.姓名,joindate=b.录入时间 FROM S_USERS INNER JOIN deleted b ON S_USERS.code = b.id
FOR UPDATE
AS
UPDATE S_USERS SET code=id, OWNNAME=b.姓名, GROUPS=b.班级编号, roles=b.角色,[PASSWORD]=b.密码,USERNAME=b.姓名,joindate=b.录入时间 FROM S_USERS INNER JOIN deleted b ON S_USERS.code = b.id
看看你得trigger得结果第一次修改表 [学生管理_学生登记]
100074 雀儿1111---》修改为 雀儿
但结果s_users中
100074 雀儿1111---》 雀儿1111第二次修改表 [学生管理_学生登记]
100074 雀儿---》修改为 雀儿2222
但结果s_users中
100074 雀儿1111---》 雀儿第一次触发不生效 第二次触发会将缓存在 deleted virtual table 中的内容 传出到 s_users我的平台 sql 2000 server + sp3