我想将IndirectFlights表合并到PriceTable中。 我没有在SourceTable(IndirectFlights)中输入ID,我还没有为它设置PK。 PriceTable的ID列是Identity(1,1)列,也是主键。如何合并表并防止ID冲突
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
编辑:我刚才运行下面的联盟,以替代使用合并所有声明。
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接受空值eventhough我必须设置为NOT NULL的ID列。
任何人都可以解释这一点。 也可以expalin如何从这个Union All声明中创建一个新的永久表。
您正在使用什么数据库的新表 - MS SQL Server的?合并是一次性的,还是一定要重复? – 2015-02-24 15:34:16
如果您需要频繁合并它们,请将唯一标识符作为主键,碰撞风险几乎不存在。 – Fredou 2015-02-24 15:34:36
即时通讯使用Server Express 2014.合并是一次性的,但我可能会再次合并表,具体取决于是否将新值输入到IndirectFlights表中。 – frustrationmultiplied 2015-02-24 15:38:55