0

我想将 IndirectFlights 表合并到 PriceTable。我没有在 SourceTable (IndirectFlights) 中输入 ID,也没有为它设置 PK。PriceTable 的 ID 列是 Identity (1,1) 列,也是主键。

Qs1 如何在 Source 列中输入 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

编辑:我刚刚运行了以下 Union All 语句作为使用 Merge 的替代方法。

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 列接受了来自 IndirectFlights.ID 的 Null 值,尽管我将 ID 列设置为 Not Null。

谁能解释一下。也有人可以解释我如何从这个 Union All 语句创建一个新的永久表。

4

1 回答 1

0

您可以使用类似的东西创建一个新表

     Select * into newTmpTable from (
        Select ID,Airport_ICAO_Code,Airline_ICAO_Code,RouteStatus From RoughworkPriceTable 
    Union All 
    Select ID,Airport_ICAO_Code,Airline_ICAO_Code,RouteStatus From RoughworkIndirectFlights) 
as mergedData;
于 2015-02-24T20:52:52.450 回答