我想将 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 语句创建一个新的永久表。