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

Откуда:
Сообщений: 73
Всем привет. Знаю, эта тема давно изъезженна вдоль и поперек. Но объясните мне такой момент. Я создаю такие таблицы:
create table Teachers.dbo.POST(
id int not null identity(1,1) ,
name varchar (20) not null,
constraint PK1 PRIMARY KEY(id)
)

create table Teachers.dbo.TEACHER(
id int not null identity(1,1) primary key,
name varchar (20) not null,
IDCode varchar (10) ,
id_post int references Teachers.dbo.POST(id),
tel varchar (7) ,
Salary int not null,
Rise NUMERIC(6,2) not null,
HireDate DateTime not null,
constraint F_KEY_POST foreign key(id_post) references POST (ID) ON DELETE SET NULL,
)


И по заданию мне нужно удалить таблицу POST. Делаю так:
alter table Teacher drop constraint F_KEY_POST
alter table POST drop constraint PK1
drop table POST

Но выходит такая ошибка:
Сообщение 3725, уровень 16, состояние 0, строка 2
На ограничение "PK1" есть ссылка в таблице "TEACHER", ограничение внешнего ключа "FK__TEACHER__id_post__45F365D3".
Сообщение 3727, уровень 16, состояние 0, строка 2
Нельзя удалить ограничение. См. предыдущие ошибки.
Вопрос, почему? Ведь я поставил обнуление в случае удаления главной таблицы. Почему не дает удалить?
4 ноя 12, 14:18    [13420017]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется внешний ключ  [new]
Glory
Member

Откуда:
Сообщений: 104751
titans
alter table Teacher drop constraint F_KEY_POST

и
titans
ограничение внешнего ключа "FK__TEACHER__id_post__45F365D3".

несколько разные имена, вы не находите ?
4 ноя 12, 15:04    [13420108]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется внешний ключ  [new]
titans
Member

Откуда:
Сообщений: 73
Нахожу....
Но почему оно изменило имя?
Ведь я сделал
constraint F_KEY_POST...
Насколько я понимаю, эта команда четко присваивает имя констрейнту.
4 ноя 12, 15:08    [13420114]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется внешний ключ  [new]
Alexander Titkin
Member

Откуда: Москва
Сообщений: 91
titans,

У вас два FK
4 ноя 12, 15:12    [13420126]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется внешний ключ  [new]
titans
Member

Откуда:
Сообщений: 73
Так что нужно подправить, что бы таблица удалилась?
4 ноя 12, 15:12    [13420127]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется внешний ключ  [new]
titans
Member

Откуда:
Сообщений: 73
Alexander Titkin
titans,

У вас два FK

Ого. А я даже не знал. Может нужно удалить references Teachers.dbo.POST(id)
4 ноя 12, 15:13    [13420129]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется внешний ключ  [new]
titans
Member

Откуда:
Сообщений: 73
Точно, сработало. Значит это было из-за двух FK. Спасибо.
4 ноя 12, 15:15    [13420133]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить