我正在尝试在SQL Server中运行此命令:
disable trigger all on MYDB
这对我来说是失败的。我登录的帐户可以访问MYDB,我几乎可以获得每个可用的权限(它只是本地数据库和我的帐户,所以这没关系)。我不明白为什么它告诉我它找不到MYDB呢?我之前做过这个。另请注意:我可以从数据库中进行选择,更新并运行grant语句(例如授予proc的执行权限)。我也可以手动禁用触发器......
那为什么会失败呢?我之前能够做到......
感谢。
答案 0 :(得分:75)
sp_msforeachtable 'ALTER TABLE ? DISABLE TRIGGER all'
要启用所有触发器,您可以使用以下语句
sp_msforeachtable 'ALTER TABLE ? ENABLE TRIGGER all'
答案 1 :(得分:0)
use MYDB;
disable trigger all on DATABASE;
答案 2 :(得分:0)
不确定为什么Yuck删除了他们的答案。来自DISABLE TRIGGER:
<强> OBJECT_NAME 强> 是创建DML触发器trigger_name以执行的表或视图的名称。
也就是说,您无法为此语句提供数据库名称。虽然MYDB
数据库存在,但不是其中的一个名为MYDB
的对象。