1

我有 3 个表:Contract, ContractElementContractElementProduct合同可以有多个ContractElementContractElement也可以有多个ContractElementProduct)。

我想复制一份合同/签订新合同,但合同要素和ContractElement产品相同。

我可以为该合同制作新合同和新元素(等于第一个合同元素),但我不能复制ContractElementProducts?

insert into ContractElement
select newid(), @NewContractId, ElementId, ElementValue, Number 
from ContractElement
where ContractId = @FirstContractId
4

1 回答 1

0

鉴于基数约束,应该有三个表:Contract、ContractElement 和 ContractElementProducts,其中 Contract 具有 ContractElement 的外键,而 Contract Element 具有 ContractElement 的外键。

如果你把所有东西都放回一张桌子上,这可能不是那么容易。

在https://dba.stackexchange.com/q/80943/52708中有一个类似的问题,在https://dba.stackexchange.com/a/80959/52708中有一个解决方案。该解决方案需要在表中添加一列,然后删除。不确定我是否喜欢这样。在那里寻找该问题的替代答案

于 2014-12-21T09:47:26.567 回答