У меня есть несколько представлений, с которыми я работаю, и мне нужно настроить триггер, чтобы предотвратить удаление любых данных в представлении, если таблица данных заблокирована переменной в другой таблице.У меня уже есть настроенный триггер, и у меня нет проблем с настройкой замены команды удаления с помощью триггера «INSTEAD OF DELETE», но теперь моя проблема заключается в том, как сохранить входящий запрос на удаление для случаев, когда удаления разрешеноВ этом случае я использую SQL Server.
Например, если контрольная таблица говорит, что мое представление заблокировано, то любой запрос на удаление, отправленный в базу данных, должен быть остановлен, и должно быть возвращено сообщение об ошибке (Здесь нет проблем, уже есть).Однако, если в контрольной таблице указано, что мое представление разблокировано, я должен иметь возможность разрешить запросу на удаление удалить данные из представления (здесь мне нужна помощь).
Код:
CREATE TRIGGER [database_name].[trigger_name]
ON [database_name].[view_name]
INSTEAD OF DELETE
AS
BEGIN
SET NOCOUNT ON
IF NOT EXISTS (SELECT * FROM [database_name].[control_table_name]
WHERE Control_Item = 'view_name' AND Can_modify = 'N')
BEGIN
SET NOCOUNT OFF
--NEW DELETION STATEMENT GOES HERE, NEEDS TO BE DUPLICATE OF REPLACED DELETE QUERY--
END
ELSE
BEGIN
RAISEERROR('Deletions are currently disabled!', 11, 1);
END
END
Я уверен, что есть какое-то глупое логическое утверждение или что-то, чего мне не хватает, но я буду признателен за любую помощь, которую смогу получить.Спасибо!