主细表问题(100分)

  • 主题发起人 主题发起人 jin_shu
  • 开始时间 开始时间
J

jin_shu

Unregistered / Unconfirmed
GUEST, unregistred user!
ado+sqlserver2000

主表 : 细表
id id
aa tt
bb yy
cc qq

主细表通过id关联,主表id为主键,标识(1,1)
批量更新时如何更新细表id(不唯一)
 
update b.tt=a.aa
from 主表 a,细表 b
where a.id=b.id
 
设置外键,时设置及联删除和及联更新就可以了
 
to ugvanxk:
不行你试过吗?可以的话说详细点
 
完全确定ugvanxk的方法是可行的,而且速度很快
 
to xiaoywh:
我用adoquery,
connect.BeginTrans;
q1.UpdateBatch(arall);//主表
Q2.UpdateBatch(arall);//细表
connect.CommitTrans;

建立关系的主表(id)自己更新了,细表(id)不变.请教
 
你在外键关系中选择了,INSERT UPDATE的级联关系了吗?(更新和删除)
如果想你说,主表的3变成2 子表还是3那岂不是违反了外键的制约条件了吗?一定要报错,呵呵,不会的
 
我要做的是增加记录时主细表同时更新,主表id用标识(1,1)
 
你只增加主表????
SQL???
 
同样问题:http://www.delphibbs.com/delphibbs/dispq.asp?lid=864790
 
增加主表与细表用adoquery.UpdateBatch(arall)
 
那你的插入子表的SQL如何得知要插入是主表中的那一个ID
 
所以你必须在主表插入完成后获得它的ID 才能进行下一步,结果你将这个ID改为自动自加,当然就有点
麻烦,要么你就这样在插入主表前先取当前主表最大的ID,然后将ID加1 交给子表
 
同时增加,从表希望能得到主表自动生成的id
 
网络环境下会出现重叠??
 
所以只能麻烦一些,增主了查ID,再增从,失败,删除主
 

谢谢!加分
 
用觸發器吧...
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部