关于触发器的问题,please help me!!!
数据库test1,有一个表user,字段为id,username,password
数据库test2,有一个表user,字段为id,username,password
当test1的user新增一条记录时,test2的user也要新增相同的一条记录.
当test1的user修改一条记录时,test2的user中如果没有这条记录,则新增这条记录,如果存在,则也作相应的修改.
~~~~~~~~~~~~~~~~~~~~上已经有人提出来了,那如果表里面有很多字段?
如果按照这样的写法:
create Trigger upd on test1.user
for update
update test2.user
set test2.username = inserted.username,
test2.password = inserted.password
where test2.id = inserted.id
不就要写很长吗?有 比较好的方法吗?谢谢了!急!!!
问题点数:0、回复次数:8Top
1 楼pengdali()回复于 2003-05-01 10:32:07 得分 0
你写错了!
create Trigger upd on [user]
for update
update test2..[user] set username = a.username from test2..[user] b,inserted a where b.[password]=a.[password] and a.id = b.idTop
2 楼kiswe(水娃)回复于 2003-05-01 11:19:22 得分 0
这样啊。。。我再试看看。。
那如果是想要删除一个字段,并且保持两个表的一致性!
这个删除触发器该如何写呢?下面这样写对吗?
create trigger del on user1
for delete
as
update user2 set username=null,password=null from user1 ,deleted
~~~~~~~~~~~~~~~~~~~~~~同样的问题:如果字段很多,这边岂不是要写很长?
where user1.id=deleted.id
(id字段是主键) ( 弱弱的问:意思是不是相当把那条记录全清空?)
Top
3 楼pengdali()回复于 2003-05-01 11:20:37 得分 0
你有这个时间都写完了Top
4 楼pengdali()回复于 2003-05-01 11:40:00 得分 0
create trigger del on user1
for delete
as
delete user2 where id in (select id from deleted)
Top
5 楼kiswe(水娃)回复于 2003-05-01 19:20:44 得分 0
好的,感谢大力兄的支持!
Top
6 楼kiswe(水娃)回复于 2003-05-01 20:54:01 得分 0
如果是对A表的插入,相当与对B表的删除。。。。。该怎么写呢?
比如:在出货表跟库存表中就是这样的例子。。。
出货表增加一项,就相当与库存表减少一项。。。
怎么写?Top
7 楼kiswe(水娃)回复于 2003-05-02 09:50:52 得分 0
大力兄。。救救我啊!Top




