假定您有两个具有匹配表结构的数据库。 例如,
D1.T1(ID, VAL) = D2.T1(ID,VAL)
D1.T2(ID, NAME,FID) = D2.T2(ID, NAME,FID)
D1.T2.FID = D1.T1.ID
现在,我想将行从D1复制到D2。但是ID值在插入D2的过程中会发生变化(不是因为我不能通过使用IDENTITY_INSERT来强制插入相同的ID,这是因为D2.T1中存在相同的ID用于某些其他值)。
现在,我需要使用新的标识值更新D2.T2。如何在不更改表的情况下做到这一点(将old_id值保留在D2.T1中,并稍后通过比较旧id值在D2.T2上进行更新)?
要提示表格结构,请参见下文。
D1.T1
ID, VAL
4934, A
4936, B
5011, C
D1.T2
ID, NAME, FKID
2478, I, 4934
2479, II, 4936
2481, III, 5011
D2.T1
ID, VAL
7813, A
7817, B
7819, C
D2.T2
ID, NAME, FKID
3416, I, 7813
3417, II, 7817
3419, III, 7819
答案 0 :(得分:0)
例如,我们现在遇到
D1.T1 of 7813, D
,然后发现D2.T1中已经存在7813?
“但是在插入D2期间ID值会发生变化”
它变成什么?说9876 ??所以现在D2.T1应该是9876,D
好吧,让我们继续尝试
D1.T2 of 2482, IIII, 7813
但是请>>我们怎么知道这个7813是指7813,A还是7813,D
我们不知道,我们无法确定是否需要保留7813或更改为9876。
Ergo,我们需要表格中包含的更多信息,例如另一列。