0

私は大きな質問を受けました。

一部のデータを既存のテーブルから新しいテーブルに移行しようとしています。次のことを行う方法を理解するのに苦労しています:

Address テーブルには、次の 2 つの列があります。

 AddressTable
 ---------------------------------------------
 StateCode(nvarchar) and CountryCode(nvarchar)

どちらも、州コードと国コードの 2 文字のコードを保持します。

新しいテーブルで、2 つの外部キーを作成しました

 NewAddressTable
 ---------------------
 StateId and CountryId

State と Country の 2 つのテーブルに対応する

StateTable has (Id,(FK)IdCountry,Name,Code)
CountryTable has (Id,Name,Code)

私がやろうとしているのは、住所テーブルの州と国コードに基づいて、州とコードに基づいて古いテーブルの値を新しいテーブルに置き換える方法です。

例:

AddressTable
-------------
City        StateCode   PostalCode  CountryCode
North Haven CT          06473       US

NewAddressTable
---------------
IdCountry   IdState
236         8

CountryTable
--------------- 
Id   Name           Code
236  UNITED STATES  US

StateTable
--------------
Id   IdCountry  Name            Code
8    236            CONNECTICUT CT

ありがとうございました。

4

1 に答える 1

1

このようなものがうまくいくはずです。

insert into newtable
(idCountry, idState)
select country.id, state.id
from oldtable join country on oldtable.CountryCode = Country.Code
join state on oldtable.stateCode = state.code
于 2013-07-03T23:17:21.983 に答える