2013-03-14 3 views
1

У меня есть 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

Любой может помочь? – Naum

+0

Где вы храните ContractElementProducts? есть ли у вас ограничения, установленные между таблицами? – CloudyMarble

+1

Что вы имеете в виду, когда говорите «где я могу сохранить ContractElementProducts»? Существует только FK contsraint между этими тремя таблицами ... – Naum

ответ

0

Учитывая ограничение мощностного должен быть три таблицы: Контракт, ContractElement и ContractElementProducts где Контракт имеет внешний ключ к ContractElement и контракт Элемент имеет внешний ключ к ContractElement.

Если вы кладете все обратно в один стол, это может быть не так просто.

Существует аналогичный вопрос, заданный в https://dba.stackexchange.com/q/80943/52708 и решение в https://dba.stackexchange.com/a/80959/52708. Это решение требует добавления столбца в таблицу, а затем удаления. Не уверен, что мне так нравится. Посмотрите там альтернативные ответы на этот вопрос

Смежные вопросы