如何合并表并防止 ID 冲突
How to Merge Tables and prevent IDs clashing
我想将 IndirectFlights table 合并到 PriceTable。
我没有在 SourceTable (IndirectFlights) 中输入 ID,也没有为它设置 PK。
PriceTable 的 ID 列是一个 Identity (1,1) 列,也是主键。
Qs1 如何在“来源”列中输入 ID,以免它们与目标 table (PriceTable) ID 冲突?我正在考虑使用序列,但将来可能会发生冲突。
Qs2 我可以选择要合并的列还是必须合并源 table 中的所有列?
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 语句中创建一个新的永久 table。
您可以使用类似
的内容创建一个新的 table
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;
我想将 IndirectFlights table 合并到 PriceTable。 我没有在 SourceTable (IndirectFlights) 中输入 ID,也没有为它设置 PK。 PriceTable 的 ID 列是一个 Identity (1,1) 列,也是主键。
Qs1 如何在“来源”列中输入 ID,以免它们与目标 table (PriceTable) ID 冲突?我正在考虑使用序列,但将来可能会发生冲突。 Qs2 我可以选择要合并的列还是必须合并源 table 中的所有列?
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 语句中创建一个新的永久 table。
您可以使用类似
的内容创建一个新的 table 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;