删除触发器
注意事项
可以通过删除dml触发器或删除触发器表来删除dml触发器。 删除表时,将同时删除与表关联的所有触发器。
删除触发器时,会从 sys.objects、sys.triggers 和 sys.sql_modules 目录视图中删除有关该触发器的信息。
仅当所有触发器均使用相同的 on 子句创建时,才能使用一个 drop trigger 语句删除多个 ddl 触发器。
若要重命名触发器,可使用 drop trigger 和 create trigger。 若要更改触发器的定义,可使用 alter trigger。
有关确定特定触发器依赖关系的详细信息,请参阅 sys.sql_expression_dependencies、sys.dm_sql_referenced_entities (transact-sql) 和 sys.dm_sql_referencing_entities (transact-sql)。
有关查看触发器文本的详细信息,请参阅 sp_helptext (transact-sql) 和 sys.sql_modules (transact-sql)。
有关查看现有触发器列表的详细信息,请参阅 sys.triggers (transact-sql) 和 sys.server_triggers (transact-sql)。
权限方面
要删除 dml 触发器,需要具有对于定义该触发器所在的表或视图的 alter 权限。
若要删除定义了服务器范围 (on all server) 的 ddl 触发器或删除登录触发器,需要对服务器拥有 control server 权限。 若要删除定义了数据库范围 (on database) 的 ddl 触发器,要求在当前数据库中具有 alter any database ddl trigger 权限。
使用ssms数据库管理工具删除触发器
删除dml触发器
1、连接数据库,选择数据库,选择数据表-》展开数据表-》展开触发器-》右键点击-》选择删除。
2、在删除对象弹出框-》点击确定-》不用刷新即可看到删除结果。
删除ddl触发器
1、连接数据库,选择数据库-》展开可编程性-》展开数据库触发器-》右键点击-》选择删除。
2、在删除对象弹出框-》点击确定-》不用刷新即可看到删除结果。
删除logon触发器
1、连接数据库-》展开服务器对象-》展开触发器-》右键点击-》选择删除。
2、在删除对象弹出框-》点击确定-》不用刷新即可看到删除结果。
使用t-sql脚本删除触发器
语法:
–声明数据库引用
use 数据库;
go
–判断是否存在,如果存在则删除
if exists(select * from sys.triggers where name=触发器名)
–删除dml触发器
drop trigger 触发器名;
—-删除ddl触发器
–drop trigger 触发器名 on database;
–删除登录触发器
–drop trigger 触发器名 on all server;
go
示例:本示例演示删除dml更新触发器。
–声明数据库引用
use testss;
go
–判断是否存在,如果存在则删除
if exists(select * from sys.triggers where name=’updatetri’)
drop trigger updatetri;
go
示例结果: