【发布时间】:2012-08-23 10:13:57
【问题描述】:
我丢失了一个触发器。我知道它是活动的,因为当我尝试更改字段时,它会恢复其值,并且从 SQL Server Management Studio 我可以看到,当我执行查询时,正在执行一个额外的查询(触发器)。
我尝试了SELECT * FROM sys.triggers WHERE 1 = 1,但它没有返回任何内容。另外,我知道触发器的名称,但是当我尝试ALTER时,它会返回一个错误,说明
对象“myTrigger”的名称无效。
如果我尝试DROP TRIGGER myTrigger ON DATABASE
无法删除触发器“myTrigger”,因为它不存在,或者用户没有足够的权限。
【问题讨论】:
-
也许在这里说明很明显,但是 1) 确保您在期望触发器打开的实际数据库上执行 select 语句,并且 2) 验证您使用正确的所有者来查看触发器。
-
" 或者用户没有足够的权限。"可能会提示您可能无法看到触发器的原因 - 您在数据库中拥有哪些权限?
-
触发器是 drop 命令所指示的数据库触发器还是不同类型的触发器(例如服务器或表)
-
@Lieven 上帝保佑!!我没有看到当我点击“新查询”时,上面的选择指向其他数据库......多么愚蠢......失去了 2 小时......
标签: sql sql-server triggers sql-server-2008-r2