У меня есть 2 таблицы, Customer
и CustomerBreakdown
.Существует связь между внешним ключом между CustomerBreakdown
и Customer
через CustomerBreakdown.CustomerId
, указывающая на столбец Id
в Customer
.
Мне нужно было удалить и воссоздать CustomerBreakdown
и снова заполнить его некоторыми сценариями.
После этого мне нужно восстановить связь внешнего ключа между двумя таблицами.
Для этого я выполняю следующие шаги:
Создайте 2 новые таблицы CustomerBackup
и CustomerBreakdownBackup
и заполните их значениями исходных таблиц, запустив следующие два сценария:
select * into CustomerBackup из Customer
select *в CustomerBreakdownBackup из CustomerBreakdown
Усечение CustomerBreakdown
.
- Запустите сценарии для заполнения
CustomerBreakdown
. - Запустите следующий сценарий длявосстановите связь внешнего ключа между двумя таблицами.
Вот мой код:
update CustomerBreakdown
set CustomerId = Customer.Id
from
Customer,
CustomerBreakdown,
CustomerBackup,
CustomerBreakdownBackup
where
CustomerBreakdownBackup.CustomerId = CustomerBackup.Id
and Customer.Name = CustomerBackup.Name
and CustomerBreakdown.CustomerLongName = CustomerBreakdownBackup.CustomerLongName
, но скрипт генерирует следующую ошибку:
Не удалось связать многоэлементный идентификатор «Customer.Name».
Почему?И как мне это исправить?Спасибо!
Структура таблиц:
Заказчик :
Id
: первичный ключ Name
: строка с ограничением уникальности
CustomerBreakdown :
Id
: первичный ключ CustomerId
: внешний ключ к полю Id в таблице Customer CustomerLongName
: строка с ограничением уникальности