我有3个表:Contract
,ContractElement
,ContractElementProduct
(合同可以有多个ContractElement
,而ContractElement
可以有多个ContractElementProduct
) 。
我想复制一份合约/签订新合约,但要使用相同的合约元素和相同的ContractElement
产品。
我可以制定新的合同,以及该合同的新元素(相当于第一个合同要素),但我不能复制ContractElementProduct
s?
insert into ContractElement
select newid(), @NewContractId, ElementId, ElementValue, Number
from ContractElement
where ContractId = @FirstContractId
答案 0 :(得分:0)
鉴于基数限制,应该有三个表:Contract,ContractElement和ContractElementProducts,其中Contract具有ContractElement的外键,Contract Element具有ContractElement的外键。
如果你把所有东西放回一张桌子里,这可能就不那么容易了。
在https://dba.stackexchange.com/q/80943/52708中提出了类似的问题,并在https://dba.stackexchange.com/a/80959/52708中提出了解决方案。该解决方案需要在表中添加一列然后删除。不确定我是那么喜欢那样的。在那里寻找该问题的替代答案