Я написал триггер после удаления строки (пользователя) для удаления таблицы, имя которой составлено из идентификатора этой строки (но не у каждого идентификатора есть таблица), я не люблю бросать исключения в коде, если таблица не существует!
CREATE TRIGGER AfterDeleteUser
ON usersProject
FOR DELETE
AS DECLARE @IDres VARCHAR(50),
@tablename VARCHAR(50)
SELECT @IDres = ins.IDressource FROM DELETED ins;
set @tablename = concat('MSG_', @IDres);
SET NOCOUNT ON;
DECLARE @Sql NVARCHAR(MAX);
SET @Sql = N'DROP TABLE '+QUOTENAME(@tablename)
EXECUTE sp_executesql @Sql;
go
Я получаю эту ошибку, когда таблица не существует!
Msg 3701, Niveau 11, État 5, Ligne 7
Невозможно удалить таблицу 'MSG_', так как она не существует или у вас нет разрешения.