Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 При создании связей между таблицами ошибка! Помогите!  [new]
brandSv
Member

Откуда:
Сообщений: 18
Добрый вечер!

При создании связей между таблицами :

create database test;
go
use test

--Cоздание таблицы Departamet (Подразделение)
create table Departamet (
Departamet_ID int identity primary key,
Departamet_NAME varchar(max))
insert into Departamet
values ('Охрана'),('Бэк-оффис'), ('IT-отдел'),('Бухгалтерия');

--Cоздание таблицы Employee (Сотрудник)
create table Employee (
Employee_ID int identity primary key,
Employee_full_name varchar(max),
Data_of_birth date,
Data_of_acceptance_to_work date,
Departamet_NAME varchar(max) references dbo.Departamet( Departamet_NAME));

Transact-SQL выдаёт ошибку :" В таблице "dbo.Departamet", на которую имеются ссылки, отсутствуют первичные или потенциальные ключи, соответствующие списку ссылающихся столбцов во внешнем ключе "FK__Employee__Depart__0519C6AF"."

Подскажите, пожалуйста, что это значит и что нужно исправить?
26 ноя 11, 19:15    [11664524]     Ответить | Цитировать Сообщить модератору
 Re: При создании связей между таблицами ошибка! Помогите!  [new]
fabulaspb
Member

Откуда: Санкт-Петербург
Сообщений: 34
Исправьте department_name на department_id и ссылайтесь на поле, являющееся первичным ключом таблицы Department
26 ноя 11, 19:20    [11664543]     Ответить | Цитировать Сообщить модератору
 Re: При создании связей между таблицами ошибка! Помогите!  [new]
brandSv
Member

Откуда:
Сообщений: 18
Огромное спасибо)) Так работает))
26 ноя 11, 19:26    [11664558]     Ответить | Цитировать Сообщить модератору
 Re: При создании связей между таблицами ошибка! Помогите!  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
fabulaspb
Исправьте department_name на department_id и ссылайтесь на поле, являющееся первичным ключом таблицы Department
Ссылаться FK может на поля, по которым построен уникальный индекс.
Это необязательно PK.

Кроме того, уместно напомнить, что поле типа VARCHAR(MAX) не может входить в состав индекса.
26 ноя 11, 19:36    [11664576]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить