SQL Server禁用所有触发器 - 找不到对象"XXXX",因为它不存在或您没有权限

Bri*_*ins 25 sql-server permissions database-permissions

我正在尝试在SQL Server中运行此命令:

disable trigger all on MYDB
Run Code Online (Sandbox Code Playgroud)

这对我来说是失败的.我登录的帐户可以访问MYDB,我几乎可以获得每个可用的权限(它只是本地数据库和我的帐户,所以这没关系).我不明白为什么它告诉我它找不到MYDB呢?我之前做过这个.另请注意:我可以从数据库中进行选择,更新并运行grant语句(例如授予proc的执行权限).我也可以手动禁用触发器...

那为什么会失败?我之前能做到......

谢谢.

Der*_*omm 78

sp_msforeachtable 'ALTER TABLE ? DISABLE TRIGGER all'
Run Code Online (Sandbox Code Playgroud)

要启用所有触发器,可以使用以下语句

sp_msforeachtable 'ALTER TABLE ? ENABLE TRIGGER all'
Run Code Online (Sandbox Code Playgroud)

  • 注意 - 如果您的数据库区分大小写,那么您必须使用sp_MSforeachtable (3认同)