【问题标题】:How to find trigger that stopping a table to be dropped如何找到停止删除表的触发器
【发布时间】:2019-08-08 09:38:27
【问题描述】:
每当我运行以下命令删除表时,
DROP TABLE MYTable
我收到此错误消息,
You do not have the privilege
Msg 3609, Level 16, State 2, Line 3
The transaction ended in the trigger. The batch has been aborted.
根据我们的 DBA,我拥有所有权限。我认为有些触发器会停止执行该语句。那么如何找到这个触发器呢。
【问题讨论】:
标签:
sql
sql-server
sql-server-2014
【解决方案1】:
这是一个 DDL 触发器,因此您可以在以下位置找到它:
Server Objects (Node) > Triggers
【解决方案2】:
这更有可能是数据库触发器。使用 SSMS 在对象资源管理器中展开数据库,然后在 Programmability 和 Database Triggers 中展开。您应该在那里找到触发器(如果有多个,则由您自己决定是否找到正确的触发器)。
【解决方案3】:
您还可以使用以下给定的查询找到数据库 DDL 触发器
选择名称,parent_class_desc
FROM 系统触发器
name parent_class_desc
----------------- ----------------
trg_index_changes DATABASE(数据库级别触发器 - DDL)
testTriiger OBJECT_OR_COLUMN(表触发器)