У меня проблемы с пониманием того, как настроить ссылку на внешний ключ.Я пытаюсь сделать ссылку между таблицами Lägenheter и Arbetslista, чтобы одна строка в Lägenheter принадлежала многим строкам в Arbetslista.
Я создал такие таблицы, как:
CREATE TABLE Deltagare (
Deltagarnr int PRIMARY KEY,
Namn varchar(30),
Typ varchar(30)
);
CREATE TABLE Uppgifter (
Uppgift varchar(30) PRIMARY KEY,
Typ varchar(30),
Pris money
);
CREATE TABLE Arbetslista (
Deltagarnr int not null,
Datum date not null,
Uppgift varchar(30) not null,
Lägenhetsnr int not null,
PRIMARY KEY (Deltagarnr, Datum, Uppgift),
FOREIGN KEY (Deltagarnr) REFERENCES Deltagare(Deltagarnr),
FOREIGN KEY (Uppgift) REFERENCES Uppgifter(Uppgift)
);
Тогда яимпортировать некоторые данные из файла .mdb во все три таблицы.После этого я добавляю еще одну таблицу:
CREATE TABLE Lägenheter(
lägenhetsnummer int PRIMARY KEY,
gatuadress varchar(30),
kvadrater int
);
Все работает нормально до последнего шага:
ALTER TABLE Arbetslista
ADD FOREIGN KEY (Lägenhetsnr) REFERENCES Lägenheter(lägenhetsnummer)
;
Здесь я получаю это сообщение об ошибке: The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK__Arbetslis__Lägen__403A8C7D". The conflict occurred in database "Hushåll", table "dbo.Lägenheter", column 'lägenhetsnummer'
.
После этого я также попытался удалить все данные из Arbetslista и затем снова выполнить упомянутый ALTER TABLE
.Это работает, но затем я получаю сообщение об ошибке при попытке импортировать данные снова:
Hresult: 0x80004005 Description: "The INSERT statement conflicted with the FOREIGN KEY constraint "FK__Arbetslis__Lägen__412EB0B6". The conflict occurred in database "Hushåll", table "dbo.Lägenheter", column 'lägenhetsnummer'.".
(SQL Server Import and Export Wizard)
Почему это невозможно, когда другие внешние ключи работаютштраф?