我有一个看起来像这样的表:
代码动物
123 "Alligator"
1254 "Cardinal"
5675 "Golden Retreiver"
我有另一个看起来像这样的表:
CODE TYPE
12367 Reptile
12 Bird
56 Dog
我想根据代码将列类型添加到第一个表中。我不确定如何进行。
那么第一项工作是使用alter table 语句添加列。
就像在类似的东西
Alter Table Animals Add AnimalTypeCode int null
然后你需要填充它,这将是一堆更新语句
用类似的东西说
Update Animals
Set AnimalTypeCode = 12367
Where Code = 123
或者如果说鳄鱼是 679
Update Animals
Set AnimalTypeCode = 12367
Where Code in (123,679)
或者,如果您更喜欢它的可读性
Update Animals
Set AnimalTypeCode = 12367
Where Animal in ('Alligator','Crocodile')
继续打,直到他们都得到一个,也许根据需要添加一些新类型,然后你可以添加一个外键。
除非您在某处将动物与动物类型联系起来,否则没有简单的方法可以做到这一点
编辑添加。给定 AnimalCode = AnimalTypeCode * 100 + ? 然后
Update Animals
Set AnimalTypeCode = Cast(AnimalCode / 100 as Int)
可能会做这项工作
Select *
From Animals
outer join AnimalTypes On Animals.AnimalTypeCode = AnimalTypes.Code
Where AnimalTypes.Code is null
将为您提供所有动物类型代码未指向现有动物类型的内容。
您必须提防的是 1269, Elephant, Bird(12)。如果你有类似的东西,你将不得不单独修复它们。