2017-02-09 4 views
-3
CREATE TABLE EMPLOYEES(
EmployeeNumber INT NOT NULL IDENTITY(1,1) 
LastName Char(35) NOT NULL, 
FirstName CHAR(35) NOT NULL, 
Department CHAR(35) NOT NULL, 
CONSTRAINT EMPLOYEE_PK PRIMARY KEY(EmployeeNumber)); 

CREATE TABLE DEPARTMENT(
DepartmentName CHAR(35) NOT NULL, 
Phone CHAR(35) NOT NULL, 
BudgetCode CHAR(35) NOT NULL, 
CONSTRAINT DEP_PK PRIMARY KEY(DepartmentName)); 

Я забыл сделать отдел как внешний ключ в сотрудниках, поэтому я сделалAlter таблица ошибки MS SQL

ALTER TABLE EMPLOYEES ADD CONSTRAINT EMP_DEP_FK 
    FOREIGN KEY(Department) REFERENCES DEPARTMENT(DepartmentName) 

и это показало мне:

Заявления TABLE ALTER конфликтного с Ограничение FOREIGN KEY "EMP_DEP_FK". Конфликт произошел в базе данных «WPC», таблица «dbo.DEPARTMENT», столбец «DepartmentName».

+2

Это означает, что у вас есть данные в дочерней таблице, которая не находится в родительской таблице. Вам нужно найти это и исправить. – HLGEM

+0

Это нормально работает на SQL Server после исправления ошибок орфографии и отсутствия запятой. – dfundako

+0

Или я замечаю, что написание имени элемента неверно в вашей структуре таблицы, поэтому оно не соответствует тому, что находится в FK. Если это действительно так в вашей фактической таблице, исправьте это. – HLGEM

ответ

1

У вас есть опечатка в вашем отделе таблицы ==>DepartmetnName.

Должно быть, вместо этого было DepartmentName.

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