sql-server - 使用 SQL 映射 ID 值
问题描述
假设您有 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。但是在插入 D2 期间 ID 值会发生变化(不是因为我无法使用 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
解决方案
因此,例如,我们现在遇到一个
D1.T1 of 7813, D
然后发现D2.T1中已经存在7813了??
“但在插入 D2 期间 ID 值会发生变化”
它变成了什么?说9876??所以现在 D2.T1 将是 9876, D
好吧,让我们继续尝试复制
D1.T2 of 2482, IIII, 7813
BUT WAIT >> 我们怎么知道这个 7813 是指 7813, A 还是 7813, D
我们不知道,我们无法确定是否需要保留 7813 或更改为 9876。
因此,我们需要更多位于表中的信息,例如另一列。
推荐阅读
- flask - 在 cpanel 中部署烧瓶应用程序的问题(Namecheap)
- java - 从我使用 switch 的方法中获取二维数组
- php - 获取两个数字之间的百分比
- python - 无法获得 app_installations 方法的授权
- c - 外部链接内联函数定义是否需要“extern”?
- jquery - 如何在仅触摸浏览器中激活 CSS :hover 事件?
- node.js - Node.Js 似乎忽略了随机执行的 await 关键字
- highcharts - 如何使用不规则数据设置highchart热图的colsize
- azure - EF Core Cosmos 3.1.3 额外调用
- html - 如何使用ui元素在行中居中图标