Partilhar via


GATILHO DE LARGAR (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Remove um ou mais gatilhos DML ou DDL da base de dados atual.

Transact-SQL convenções de sintaxe

Sintaxe

-- Trigger on an INSERT, UPDATE, or DELETE statement to a table or view (DML Trigger)  
  
DROP TRIGGER [ IF EXISTS ] [schema_name.]trigger_name [ ,...n ] [ ; ]  
  
-- Trigger on a CREATE, ALTER, DROP, GRANT, DENY, REVOKE or UPDATE statement (DDL Trigger)  
  
DROP TRIGGER [ IF EXISTS ] trigger_name [ ,...n ]   
ON { DATABASE | ALL SERVER }   
[ ; ]  
  
-- Trigger on a LOGON event (Logon Trigger)  
  
DROP TRIGGER [ IF EXISTS ] trigger_name [ ,...n ]   
ON ALL SERVER  

Arguments

SE EXISTE
Aplica-se a: SQL Server (SQL Server 2016 (13.x) até à versão atual, Base de Dados SQL).

O gatilho só se ele já existir, condicionalmente, desliga.

schema_name
É o nome do esquema ao qual pertence um disparador DML. Os gatilhos DML são direcionados ao esquema da tabela ou vista onde são criados. schema_name não pode ser especificado para gatilhos DDL ou de logon.

trigger_name
É o nome do gatilho a remover. Para ver uma lista de gatilhos atualmente criados, use sys.server_assembly_modules ou sys.server_triggers.

DATABASE
Indica que o âmbito do disparador DDL se aplica à base de dados atual. DATABASE deve ser especificado se também foi especificado quando o gatilho foi criado ou modificado.

TODO O SERVIDOR
Aplica-se a: SQL Server 2008 (10.0.x) e posterior.

Indica que o âmbito do trigger DDL aplica-se ao servidor atual. ALL SERVER deve ser especificado se também foi especificado quando o gatilho foi criado ou modificado. ALL SERVER também se aplica aos gatilhos de logon.

Observação

Esta opção não está disponível numa base de dados contida.

Observações

Podes remover um gatilho DML retirando-o ou retirando a tabela de gatilhos. Quando uma tabela é descartada, todos os gatilhos associados também são eliminados.

Quando um trigger é eliminado, a informação sobre o trigger é removida das vistas de catálogo sys.objects, sys.triggers e sys.sql_modules .

Múltiplos gatilhos DDL podem ser eliminados por instrução DROP TRIGGER apenas se todos os gatilhos foram criados usando cláusulas ON idênticas.

Para renomear um trigger, usa DROP TRIGGER e CRIAR TRIGGER. Para alterar a definição de gatilho, use ALTERAR TRIGGER.

Para mais informações sobre como determinar dependências para um gatilho específico, veja sys.sql_expression_dependencies, sys.dm_sql_referenced_entities (Transact-SQL) e sys.dm_sql_referencing_entities (Transact-SQL).

Para mais informações sobre a visualização do texto do trigger, veja sp_helptext (Transact-SQL) e sys.sql_módulos (Transact-SQL).

Para mais informações sobre como visualizar uma lista de triggers existentes, consulte sys.triggers (Transact-SQL) e sys.server_triggers (Transact-SQL).

Permissions

Para eliminar um gatilho DML é necessária permissão ALTER na tabela ou vista onde o gatilho está definido.

Para eliminar um gatilho DDL definido com o âmbito do servidor (EM TODOS OS SERVIDORES) ou um gatilho de logon é necessário permissão CONTROL SERVER no servidor. Para eliminar um disparador DDL definido com o âmbito da base de dados (ON DATABASE) é necessário ALTERAR QUALQUER PERMISSÃO DE DISPARO DDL DA BASE DE DADOS na base de dados atual.

Examples

A. Deixar cair um gatilho DML

O exemplo seguinte elimina o employee_insupd gatilho na base de dados AdventureWorks2025. (A partir do SQL Server 2016 (13.x) pode usar a sintaxe DROP TRIGGER IF EXISTS.)

IF OBJECT_ID ('employee_insupd', 'TR') IS NOT NULL  
   DROP TRIGGER employee_insupd;  

B. Eliminação de um gatilho DDL

O exemplo seguinte elimina o disparador safetyDDL .

Importante

Como os gatilhos DDL não têm âmbito de esquema e, portanto, não aparecem na vista de catálogo sys.objects , a função OBJECT_ID não pode ser usada para questionar se existem na base de dados. Os objetos que não têm âmbito esquemagráfico devem ser consultados usando a vista de catálogo apropriada. Para gatilhos DDL, use sys.triggers.

DROP TRIGGER safety  
ON DATABASE;  

Ver também

ALTERAR DISPARADOR (Transact-SQL)
CRIAR GATILHO (Transact-SQL)
ATIVAR TRIGGER (Transact-SQL)
DESATIVAR ACIONADOR (Transact-SQL)
EVENTDATA (Transact-SQL)
Obter Informações Sobre os Triggers DML
sp_help (Transact-SQL)
sp_helptrigger (Transact-SQL)
sys.triggers (Transact-SQL)
sys.trigger_events (Transact-SQL)
sys.sql_módulos (Transact-SQL)
sys.assembly_modules (Transact-SQL)
sys.server_triggers (Transact-SQL)
sys.server_trigger_events (Transact-SQL)
sys.server_sql_modules (Transact-SQL)
sys.server_assembly_modules (Transact-SQL)