27

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

disable trigger all on MYDB

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

那么为什么会失败呢?以前我也能做到...

谢谢。

4

3 回答 3

86
sp_msforeachtable 'ALTER TABLE ? DISABLE TRIGGER all'

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

sp_msforeachtable 'ALTER TABLE ? ENABLE TRIGGER all'
于 2011-08-24T15:09:15.023 回答
0
use MYDB;
disable trigger all on DATABASE;
于 2011-08-24T14:54:47.200 回答
0

不知道为什么 Yuck 删除了他们的答案。从禁用触发器

object_name 是创建 DML 触发器 trigger_name 以执行的表或视图的名称。

也就是说,您不能为此语句提供数据库名称。虽然MYDB 数据库存在,但其中没有一个名为MYDB.

于 2011-08-24T14:54:54.823 回答