Как мне отредактировать таблицу, чтобы включить КАСКАДНОЕ УДАЛЕНИЕ?

StackOverflow https://stackoverflow.com/questions/4454861

Вопрос

У меня есть таблица, представляющая пользователей.Когда пользователь удаляется, я получаю:

Оператор DELETE конфликтует с ограничением ССЫЛКИ

Очевидно, CASCADE DELETE это не так просто, как я себе представлял в SQL Server, и эту опцию необходимо добавить в таблицу.

Проблема в том, что:Я не могу понять, как добавить CASCADE DELETE вариант.

Я использую: SQL Server 2008.Есть какие-нибудь идеи, как это сделать?

Это было полезно?

Решение

Сначала прочтите эту статью Microsoft. Прочти Меня.Я использую графический интерфейс при проектировании, поэтому вот изображение того, как он выбирается в SSMS.alt text Синтаксис , добавленный к внешнему ключу , - " ПРИ КАСКАДНОМ УДАЛЕНИИ " .

Другие советы

Google ALTER TABLE DROP CONSTRAINT, тогда ALTER TABLE ADD CONSTRAINT:

ИЗМЕНИТЬ ТАБЛИЦУ

Вот краткий пример:

CREATE TABLE A 
(
 ID INTEGER NOT NULL UNIQUE
);

CREATE TABLE B 
(
 ID INTEGER NOT NULL UNIQUE
    CONSTRAINT fk__B__A 
       REFERENCES A (ID)
);

-- Oops! Forgot the CASCADE referential actions.
-- DROP the constraint then recreate it:

ALTER TABLE B DROP
   CONSTRAINT fk__B__A;

ALTER TABLE B ADD
   CONSTRAINT fk__B__A
      FOREIGN KEY (ID)
      REFERENCES A (ID)
      ON DELETE CASCADE
      ON UPDATE CASCADE;

Вот как я бы добавил функцию "каскадного удаления" в существующий внешний ключ в Студия управления SQL Server.

Сначала найдите свой внешний ключ и откройте его "УДАЛИТЬ и СОЗДАТЬ В" в новом окне запроса.

Drop and Create

Затем просто добавьте "ON DELETE CASCADE" к тому самому "ADD CONSTRAINT" команда:

On delete cascade

Затем просто нажмите кнопку "Выполнить", чтобы запустить запрос.

Работа выполнена !

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top