P_ryjbxx表有字段
Pid
Ghid
Pname
Age
Sex
……等十几个字段Web_user表里有字段
ID
Ghid
Password
这三个字段现在是P_ryjbxx表如果插入一条数据,要同时往Web_user表里插入P_ryjbxx的Ghid
还有就是如果P_ryjbxx的Ghid被修改了,Web_user表里的也要修改Ghid
再有就是删除了。
例如P_ryjbxx里Ghid是1的数据被删除了,那么Web_user里Ghid=1的一条数据也要删除这个用触发器怎么实现啊?代码我不会写。大家帮忙写一下
谢谢啦
Pid
Ghid
Pname
Age
Sex
……等十几个字段Web_user表里有字段
ID
Ghid
Password
这三个字段现在是P_ryjbxx表如果插入一条数据,要同时往Web_user表里插入P_ryjbxx的Ghid
还有就是如果P_ryjbxx的Ghid被修改了,Web_user表里的也要修改Ghid
再有就是删除了。
例如P_ryjbxx里Ghid是1的数据被删除了,那么Web_user里Ghid=1的一条数据也要删除这个用触发器怎么实现啊?代码我不会写。大家帮忙写一下
谢谢啦
on pr_ryjbxx
for insert,update,delete
as
begin
if eixsts(select 1 from web_user a ,inserted b where b.ghid = a.id )
update b
set ....
from web_user a ,inserted b
where ...
else
insert into web_user select * from inserted i where not exists(select 1 from web_user where ghid = i.id)
delete a from web_user a where exists(select 1 from deleted where a.ghid = id)
end
go
for insert
as declare @Ghid char(10)select @Ghid=Ghid from inserted
insert into web_user (Ghid ) values (@Ghid)
create trigger tr_delete on P_ryjbxx
for delete
as declare @pid char(10),@Ghid char(10)
select @Ghid=Ghid from deleted
delete web_user where Ghid=@Ghid
--update 的触发器也是这样写。仿照着就可以了,你试着写下吧--还有简单一些的写法,但这样写估计你比较好理解
create trigger tr_update on P_ryjbxx
for update
as declare @pid char(10),@Ghid char(10)
select @Ghid=Ghid from updated
update web_user set Ghid=@Ghid where @Ghid=Ghid
create trigger tr_update on P_ryjbxx
for update
as declare @pid char(10),@Ghid char(10)
select @Ghid=Ghid from updated
update Web_User set Ghid=@Ghid where Ghid=@Ghid
报的什么不能在Web_user中插入重复键