SQLServer之删除触发器

删除触发器

注意事项

可以通过删除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

示例结果:

原文地址:https://www.cnblogs.com/vuenote/p/9830208.html

时间: 2024-10-06 00:23:55

SQLServer之删除触发器的相关文章

SQLserver数据库之触发器

在SQLserver数据库中触发器中大致分为两种:DDL.DML触发器,即系统触发器与表触发器,系统触发器是对数据库对象进行操作的触发器,表触发器是对表格的增删改时候所进行的触发器.在这里我们就只说表的触发器. 表的触发器也分为两种,分别为:instead of.after(for):分别在表操作之前与表操作之后进行触发.而且两种触发器都有三个触发条件:insert.delete.update.基本语法为: create trigger tgr_name on table_name with e

Postgresql添加/删除触发器示例

-- 定义触发器 CREATE TRIGGER "vss_after_insert_flow_201702" AFTER INSERT ON "public"."vss_passenger_flow_201702" FOR EACH ROW EXECUTE PROCEDURE "vss_after_insert_flow"(); --删除触发器 DROP TRIGGER vss_after_insert_flow_201702

SqlServer 中的触发器

SqlServer 触发器实现多表之间同步增加.删除与更新 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程. 常见的触发器有三种:分别应用于Insert , Update , Delete 事件. 触发器的使用模版如下 CREATE TRIGGER 触发器名称 ON 表名称 AFTER INSERT /UPDATE/DELETE AS BEGIN INSERT INTO B表(B表字段1,B表字段2,B表字

SqlServer禁用启用触发器、外键约束

--禁用指定名称触发器 ALTER TABLE tbname DISABLE TRIGGER trigname --恢复指定名称触发器 ALTER TABLE tbname ENABLE TRIGGER trigname --禁用某个表上的所有触发器 ALTER TABLE tbname DISABLE TRIGGER all --启用某个表上的所有触发器 ALTER TABLE tbname ENABLE TRIGGER all --禁用所有表上的所有触发器exec sp_msforeacht

SQL之删除触发器

比如要删除的触发器名字叫dbo.test_trigger. 先判断这个触发器是否存在,判断存在后删除 if exists (select * from sysobjects where name = 'test_trigger' and type='TR') drop trigger dbo.test_trigger

oracle级联删除 触发器

CREATE TABLE STUDENT( --创建学生表  ID NUMBER(10) PRIMARY KEY,   --主键ID  SNAME VARCHAR2(20),  CLASSNAME VARCHAR2(20) --班级ID ); INSERT INTO STUDENT VALUES(1,'Tom',1);INSERT INTO STUDENT VALUES(2,'Jack',1);INSERT INTO STUDENT VALUES(3,'Bay',2);INSERT INTO S

mssql sqlserver 禁止删除数据表中指定行数据(转自:http://www.maomao365.com/?p=5323)

转自:http://www.maomao365.com/?p=5323 摘要:下文主要讲述,如何禁止删除数据表中指定行数据 最近收到用户一个需求,禁止所有人删除”表A”中,ID 为1.2.3.4.5的系统默认数据,通过项目组同事仔细研究,我们得到一致的答案为:在表上新增一个触发器,当删除数据ID为 1 2 3 4 5时候,直接弹出相应的错误,采用这种模式,可以限制所有端口的异常操作(程序 查询分析器),具体实现方式,如下文所示: create trigger trTriggerA on A fo

sqlserver暂时禁用触发器进行update

1 --1.禁用某个表上的所有触发器 2 ALTER TABLE tbname DISABLE TRIGGER all 3 go 4 --2.执行update语句 5 update tbname set .... 6 go 7 --3.恢复某个表上的所有触发器 8 ALTER TABLE tbname ENABLE TRIGGER all 9 go 触发器定义:就是给前期设计擦屁股的东西. 前期设计乱吃东西吃坏肚子了,然后又舍不得动手术,放任拉肚子,拉完之后,拿出触发器把屁股一擦,干净了.

在SQLServer里面追寻触发器触发的源头

通常,数据库的数据的都是程序发送的指令进行增删改.后台进行日常维护包括备份.索引重建等工作,当然也存在直接执行update语句以修复错误数据的情况,如果这种行为发生在客户身上,并且客户是个二把刀,那么可能会出后果无人承担的情况.那么除了从制度上明确上述行为之外,技术上能否进行一些追踪呢? 我们可以通过下面语句获取到当前正在执行的语句: DECLARE @Handle varbinary(64); SELECT @Handle = sql_handle FROM master..sysproces