我有一个包含报价和产品配置的数据库,有一个报价表头,可能有一个或多个配置。在配置中,存在以一对一和一对多的阴影定义产品和硬件的表。如果客户希望改变报价的任何方面,则必须冻结当前报价,并使用不同的报价编号生成另一报价。引号是头表中的自动标识字段。
我写了一个长篇大论的克隆脚本,但是由于需要额外的列,克隆脚本很快就会过时。这使得销售支持的工作就是不得不手工克隆报价,这通常会导致错误。
您如何以这样的方式处理这个问题,以便轻松定义关系,传播新的id而不必明确指定每个表中的所有列?
答案 0 :(得分:2)
你可以
SELECT *
INTO #tableN
FROM tableN
WHERE QuotationID = @OldQuotationID
为每个相关表的临时表,这样您就不必知道每个表的确切模式。然后,在创建新标题行并捕获新的QuotationId值之后,可以使用新的QuotationID更新这些表,并将它们插回到它们来自的表中。