对不起,问题标题没有很好地解释我的问题:
假设我有一张桌子,Dog:
<表类>
ID
名称
品种
tbody><<tr>1 狗 杂种狗 2姑娘 牧羊犬 . … . 999 点 Dalmation 表类>
我假设品种表中的达尔马提亚名字应该是ID 999而不是3?
我想你想要这样的东西:
UPDATE Dog, Breed
SET [Dog].[BreedID] = [Breed].[Name]
WHERE (([Dog].[ID]=[Breed].[ID]));
输出的Dog表如下所示:
ID Name BreedID
1 Fido Mutt
2 Lassie Lassie
999 Spot Dalmatian
更新dogs表以引用新的品种表实际上是一个相对简单的查询:(参见演示)
-- update dogs with breed_id
update dogs d
set breed_id = b.breed_id
from breeds b
where b.name = d.breed;
除此之外,你的行动应该遵循:
- 使新品种所需和FK进入品种表
- 从狗中删除不必要的品种栏