Подтвердить что ты не робот

Как отредактировать таблицу, чтобы включить CASCADE DELETE?

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

Операция DELETE противоречит ограничению REFERENCE

По-видимому, CASCADE DELETE не так прост, как я себе представлял в SQL Server, и этот параметр нужно добавить в таблицу.

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

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

4b9b3361

Ответ 1

Сначала прочтите эту статью Microsoft. Прочитайте меня. Я использую графический интерфейс во время проектирования, так что вот пример того, как он выбран в SSMS. alt text Синтаксис, добавленный к внешнему ключу, "ON DELETE CASCADE"

Ответ 2

Google ALTER TABLE DROP CONSTRAINT, затем ALTER TABLE ADD CONSTRAINT:

ALTER TABLE

Вот пример:

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;

Ответ 3

Здесь я хотел бы добавить функцию "каскадного удаления" к внешнему ключу существующего в SQL Server Management Studio.

Сначала найдите внешний ключ и откройте его "DROP и CREATE To" в новом окне запроса.

Drop and Create

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

При удалении каскада

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

Задание выполнено!