如何复制分布在MSSQL中多个表的记录集?

时间:2012-08-29 20:10:53

标签: sql-server tsql

我有一个包含报价和产品配置的数据库,有一个报价表头,可能有一个或多个配置。在配置中,存在以一对一和一对多的阴影定义产品和硬件的表。如果客户希望改变报价的任何方面,则必须冻结当前报价,并使用不同的报价编号生成另一报价。引号是头表中的自动标识字段。

我写了一个长篇大论的克隆脚本,但是由于需要额外的列,克隆脚本很快就会过时。这使得销售支持的工作就是不得不手工克隆报价,这通常会导致错误。

您如何以这样的方式处理这个问题,以便轻松定义关系,传播新的id而不必明确指定每个表中的所有列?

1 个答案:

答案 0 :(得分:2)

你可以

SELECT * 
INTO #tableN
FROM tableN
WHERE QuotationID = @OldQuotationID

为每个相关表的临时表,这样您就不必知道每个表的确切模式。然后,在创建新标题行并捕获新的QuotationId值之后,可以使用新的QuotationID更新这些表,并将它们插回到它们来自的表中。