0

IndirectFlights テーブルを PriceTable にマージしたいと考えています。SourceTable (IndirectFlights) に ID を入力しておらず、まだ PK を設定していません。PriceTable の ID 列は ID (1,1) 列であり、主キーでもあります。

Qs1 ソース列に ID を入力して、ターゲット テーブル (PriceTable) の ID と競合しないようにするにはどうすればよいですか? シーケンスを使用することを考えていましたが、将来的に衝突する可能性があります。Qs2 マージする列を選択できますか、それともソース テーブルのすべての列をマージする必要がありますか?

Target Table (PriceTable) Columns
IDAirport_ICAO_Code,Airline_ICAO_Code,Departure,Price,RouteStatus,DateRowModified

Source Table (IndirectFlights) Columns
IDAirport_ICAO_Code,Destination,Airline,Airline_ICAO_Code,RouteStatus,Connecting Airport

編集: Merge を使用する代わりに、次の Union All ステートメントを実行しました。

Select ID,Airport_ICAO_Code,Airline_ICAO_Code,RouteStatus
From RoughworkPriceTable
Union All
Select ID,Airport_ICAO_Code,Airline_ICAO_Code,RouteStatus
From RoughworkIndirectFlights;

コードは機能しましたが、ID 列が Not Null に設定されていても、ID 列が IndirectFlights.ID からの Null 値を受け入れていることに気付きました。

誰でもこれを説明できますか。また、この Union All ステートメントから新しい永続テーブルを作成する方法を誰かが説明できますか。

4

1 に答える 1