【发布时间】:2018-07-20 21:30:20
【问题描述】:
假设您有 2 个数据库,两者都具有匹配的表结构。 例如,
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
【问题讨论】:
标签: sql-server identity uniqueidentifier