各位高手,请快帮帮忙,请问主从表中,怎样才能修改他们的外关键字。(200分)

  • 主题发起人 主题发起人 wangli
  • 开始时间 开始时间
W

wangli

Unregistered / Unconfirmed
GUEST, unregistred user!
如有两个table,table1是主表,table2是从表,他们之间通过bh这个字段建立主从关系,
现在我想修改主表的bh字段,该怎么办?
 
什么库?能不能用触发器(for update)?如果可以就写个触发器,最简单。
 
是sql server 7.0
 
1。修改字段名没有关系。外键会自动改变。
2。修改字段内容(假设您要实现CASCADE的参照动作)
由于SQL SERVER7只能事后触发,所以要先把外键的作用终止。
(如果您要经常修改主键,建议不要建立外键的约束。)
其外键的作用由trigger代替。
简单如下:(在有主键的表(test_pri)中建立,test为从表)
create trigger test_trigger
on test_pri
for delete
as
delete test from test,deleted where test.t_id=deleted.t_id
同样也可实现更新等参照动作。
 
SQL SERVER确实只能进行事后的触发,所以还是在程序里处理吧——
比如把主表TTable控件的CachedUpdates属性设为True,在它的OnUpdateRecord事件里获得
字段bh的OldValue和NewValue;然后用Update语句修改从表的bh字段值(注意加事务保护);
成功之后调用主表TTable的ApplyUpdates提交。可以参见Delphi帮助里的“OldValue”等主题。
 
修改字段名没有关系。外键会自动改变
 
不知SQL Server支持不支持外健的级联更改删除
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
551
import
I
后退
顶部