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

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

disable trigger all on MYDB

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

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

спасибо.

3 ответов


sp_msforeachtable 'ALTER TABLE ? DISABLE TRIGGER all'

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

sp_msforeachtable 'ALTER TABLE ? ENABLE TRIGGER all'

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

имя_объекта Имя таблицы или представления, для выполнения которых был создан триггер DML trigger_name.

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


use MYDB;
disable trigger all on DATABASE;