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

SQL Server Отключение всех триггеров - не удается найти объект "XXXX", потому что он не существует или у вас нет разрешений

Я пытаюсь запустить эту команду в SQL Server:

disable trigger all on MYDB

Это не для меня. У учетной записи, к которой я подключился, есть доступ к MYDB, и я в значительной степени даю ей все доступные разрешения (это только локальная БД и моя учетная запись, так что это нормально). Я не понимаю, почему это говорит мне, что не может найти MYDB для этого? Я сделал это раньше. Также обратите внимание: я могу выбрать из базы данных, обновить и запустить инструкцию grant (например, предоставление выполнения proc). Я также могу отключить триггеры вручную...

Так почему же это не удается? Я смог сделать это раньше...

Спасибо.

4b9b3361

Ответ 1

sp_msforeachtable 'ALTER TABLE ? DISABLE TRIGGER all'

Чтобы включить все триггеры, вы можете использовать следующий оператор

sp_msforeachtable 'ALTER TABLE ? ENABLE TRIGGER all'

Ответ 2

use MYDB;
disable trigger all on DATABASE;

Ответ 3

Не знаю, почему Yuck удалил свой ответ. Из ОТКЛЮЧИТЕЛЬНЫЙ ТРИГГЕР:

object_name Имя таблицы или представления, на которой было создано триггерное имя DML для запуска.

То есть вы не можете указать имя базы данных для этого оператора. Пока существует база данных MYDB, внутри нее не существует объекта MYDB.