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

Откуда:
Сообщений: 4
Здравствуйте! У меня такая проблема: вообщем у меня в бд есть три таблицы, которые мне интересны - документ, отчет и сотрудник.
Причем в таблице отчет хранятся Id документа и Id сотрудника(Id документа - 1-ый ключ). Допустим стоит такая задача - нужно удалить строку из таблицы документ. Я применяю каскадное удаление и id документа из таблицы отчет тоже удаляется. С этим проблем нет. А вот, что делать с Id сотрудника?
10 дек 11, 15:59    [11741693]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное удаление строки из БД  [new]
Glory
Member

Откуда:
Сообщений: 104751
daytrew
А вот, что делать с Id сотрудника?

Что определено ТЗ, то и делайте.
10 дек 11, 16:16    [11741757]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное удаление строки из БД  [new]
daytrew
Member

Откуда:
Сообщений: 4
Glory
daytrew
А вот, что делать с Id сотрудника?

Что определено ТЗ, то и делайте.


Мне нужно этот id удалить. Но как - я не знаю? Каскадное удаление здесь не канает!
10 дек 11, 16:42    [11741868]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное удаление строки из БД  [new]
Glory
Member

Откуда:
Сообщений: 104751
daytrew
Каскадное удаление здесь не канает!

Почему ?
10 дек 11, 16:44    [11741881]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное удаление строки из БД  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Что это за документ такой, что за его утерю убивают сотрудника?
10 дек 11, 16:54    [11741915]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное удаление строки из БД  [new]
daytrew
Member

Откуда:
Сообщений: 4
iap
Что это за документ такой, что за его утерю убивают сотрудника?


Допустим пишу
delete Otchet where Id_sotrudnika = 2
В результате ошибка:
Cannot delete last Otchet because sotrudnik exists.
10 дек 11, 17:20    [11742028]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное удаление строки из БД  [new]
Glory
Member

Откуда:
Сообщений: 104751
daytrew
В результате ошибка:
Cannot delete last Otchet because sotrudnik exists.

Это сообщение триггера наверное
10 дек 11, 17:31    [11742083]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное удаление строки из БД  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
daytrew
iap
Что это за документ такой, что за его утерю убивают сотрудника?


Допустим пишу
delete Otchet where Id_sotrudnika = 2
В результате ошибка:
Cannot delete last Otchet because sotrudnik exists.
Потому что связи между сущностями определены неправильно.
Удаление сотрудника должно приводить к удалению его документов и отчётов.
Но не наоборот!
10 дек 11, 17:54    [11742178]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное удаление строки из БД  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31956
iap
Потому что связи между сущностями определены неправильно.
Удаление сотрудника должно приводить к удалению его документов и отчётов.
Но не наоборот!
Это у них бизнес-процессы такие, высшая степень независимости бизнеса от личностей.

Отчёт - такое же свойство сотруджника, как пол или возраст.

Нет отчёта - нет человека :-)
10 дек 11, 19:55    [11742617]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить