Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Удаление записей

6.0K
04 ноября 2008 года
Balda
79 / / 12.05.2008
СУБД MS SQL 2005.
Проблема:
 
Код:
DELETE FROM Table1 WHERE ID = 10

при попытке удаления записи из таблицы возникает сообщение о том, что есть ссылки на данную запись из других таблиц.
Как можно сделать внешние ключи данной таблицы неактивными/активными? В Oracle это можно было сделать так:
 
Код:
ALTER TABLE Table1
Disable constraint fk_1

А как это реализуеться в MS SQL 2005?
1
05 ноября 2008 года
kot_
7.3K / / 20.01.2000
Это называется ссылочная целостность - и в Оракле если я не ошибаюсь точно также - первичный ключ данной таблици является внешним для других таблиц. Причем здесь
 
Код:
ALTER TABLE Table1
Disable constraint fk_1
?
вам не эту таблицу надо перестроить, а ссылающиеся на нее.
8.2K
05 ноября 2008 года
Ora-cool
211 / / 20.09.2007
Если предполагается, что при удалении записи в главной таблицы должны удаляться записи в подчиненной, то ограничение ссылочной целостности нужно создавать с опцией ON DELETE CASCADE.
6.0K
05 ноября 2008 года
Balda
79 / / 12.05.2008
А если внешних ключей в дочерних таблицах слишком много и вылавливать их долго?
341
06 ноября 2008 года
Der Meister
874 / / 21.12.2007
В сообщении об ошибке должно быть указано, с ограничением какой именно связи вступает в конфликт операция удаления. Как верно заметил Ora-cool, включение каскадных операций должно легко решить проблему. Если же каскад реализовать невозможно, его может заменить хранимая процедура, удаляющая сначала связанные данные, а затем данные из Table1.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог