Как предотвратить удаление запроса в SQL - PullRequest
0 голосов
/ 11 мая 2018

Я создал базу данных с помощью Entity Framework Code First Approach, и мое приложение готово и работает вживую.Проблема в том, что я не включил «False» в «Каскадное удаление» во время создания базы данных.Теперь, если я удаляю любую запись из одной таблицы, на которую ссылается другая таблица через чужую, то вся запись, содержащая внешний ключ удаленной строки, удаляется из другой таблицы.Практически демонстрация:

Допустим, у меня есть таблица с именем Passenger:

ID     Name    CategoryID
1      ABC         1

CategoryID - это внешний ключ

Вот таблица категорий

ID    Name   
1     Gold

Допустим, я выполняю свой запрос к таблице категорий

delete from Category where ID = 1

Теперь все записи из моей таблицы пассажиров удалены.Я хочу ограничить это.Возможно ли это через SQL сейчас?

1 Ответ

0 голосов
/ 11 мая 2018

Полагаю, Это то, что вы ищете :

alter TRIGGER customers_del_prevent
ON dbo.customers 
INSTEAD OF DELETE
AS
BEGIN
 insert into dbo.log
    values ('DELETE')   
 RAISERROR ('Deletions not allowed from this table (source = instead of)', 16, 1)   
 END

Надеюсь, это вам поможет.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...