web-dev-qa-db-ja.com

SQL Serverがすべてのトリガーを無効にする-オブジェクト "XXXX"が存在しないか、権限がないため、オブジェクトを見つけることができません

SQL Serverでこのコマンドを実行しようとしています。

disable trigger all on MYDB

これは私にとって失敗しています。私がログインしているアカウントはMYDBへのアクセス権があり、使用可能なすべての単一の権限を与えています(ローカルDBと私のアカウントのみなので、これで問題ありません)。 MYDBが見つからないという理由がわかりません。私は以前にこれをやったことがあります。また、注:データベースから選択して、grantステートメント(更新の実行など)を更新および実行できます。手動でトリガーを無効にすることもできます...

なぜこれが失敗するのですか?以前はできました...

ありがとう。

25
Brian Mains
sp_msforeachtable 'ALTER TABLE ? DISABLE TRIGGER all'

すべてのトリガーを有効にするには、次のステートメントを使用できます

sp_msforeachtable 'ALTER TABLE ? ENABLE TRIGGER all'
78
Derek Kromm
use MYDB;
disable trigger all on DATABASE;
0
Badiboy

Yuckが回答を削除した理由がわかりません。 From DISABLE TRIGGER

object_name実行するためにDMLトリガーtrigger_nameが作成されたテーブルまたはビューの名前です。

つまり、このステートメントにデータベース名を指定することはできません。 MYDBデータベースは存在しますが、そこにではありませんMYDBと呼ばれるオブジェクトはありません。