我需要通过存储适当的CityId而不是CityName将数据从一个旧表迁移到新表

时间:2019-01-15 17:18:15

标签: sql sql-server asp.net-mvc tsql

我正在将数据从一个表迁移到SQL Server中的另一个表,在此过程中,我需要做的是“我在旧表中有10列,其中一列是'CityName',即varchar,而在新表中,我有一个列'CityId',它是一个整数。我还有另一个表,其中包含有关城市ID和名称的数据。我需要在新表中存储适当的cityId而不是CityName。请帮帮我。

2 个答案:

答案 0 :(得分:2)

您需要将源表加入城市信息表中的CityName字段:

INSERT INTO dbo.Destination (CityID, OtherStuff)
SELECT t1.CityID, t2.OtherStuff
FROM CityInformationTable t1
INNER JOIN SourceTable t2
ON t1.CityName = t2.CityName

答案 1 :(得分:1)

下面应该给您一个想法,您需要内部连接到查询表中才能实现此目的。

declare @t_cities table (Id int, City nvarchar(20))

insert into @t_cities 
    (Id, City)
values
    (1, 'London'),
    (2, 'Dublin'),
    (3, 'Paris'),
    (4, 'Berlin')    

declare @t table (City nvarchar(20), SomeColumn nvarchar(10))

insert into @t
values 
    ('London', 'AaaLon'),
    ('Paris', 'BeePar'),
    ('Berlin', 'CeeBer'),
    ('London', 'DeeLon'),
    ('Dublin', 'EeeDub')

declare @finalTable table (Id int, SomeColumn nvarchar(10))

insert into @finalTable
select c.Id, t.SomeColumn
from @t t
    join @t_cities c on c.City = t.City

select * from  @finalTable

输出:

Id  SomeColumn
1   AaaLon
3   BeePar
4   CeeBer
1   DeeLon
2   EeeDub