Поделиться через


Удаление или отключение триггеров DML

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

В этом разделе описывается удаление или отключение триггера DML в SQL Server с помощью SQL Server Management Studio или Transact-SQL.

В этом разделе

Перед началом

Рекомендации

  • После удаления триггер удаляется из текущей базы данных. Это не повлияет на таблицу и данные, на которых он основан. При удалении таблицы автоматически удаляются все триггеры в ней.

  • По умолчанию при создании триггер включается.

  • Отключение триггера не сбрасывает его. Триггер все еще существует как объект в текущей базе данных. Однако триггер не сработает, если будет выполнена какая-либо инструкция INSERT, UPDATE или DELETE, на которую он был запрограммирован. Отключенные триггеры можно повторно включать. При включении триггера он не создается повторно. Он срабатывает так же, как при первоначальном создании.

Безопасность

Разрешения

Чтобы удалить триггер DML, необходимо разрешение ALTER для таблицы или представления, в которых определен данный триггер.

Для отключения или включения триггера DML пользователь должен обладать как минимум разрешением ALTER для таблицы или представления, где создан триггер.

Использование среды SQL Server Management Studio

Удаление триггера DML

  1. В Обозревателе объектов подключитесь к экземпляру сервера базы данных, а затем разверните этот экземпляр.

  2. Разверните нужную базу данных, разверните Таблицы, а затем разверните таблицу, которая содержит триггер, который вы хотите удалить.

  3. Разверните Триггеры, щелкните правой кнопкой мыши на триггере и затем нажмите Удалить.

  4. В диалоговом окне Удаление объекта проверьте триггер и нажмите кнопку ОК.

Отключение и включение триггера DML

  1. В Обозреватель объектов подключитесь к экземпляру СУБД, а затем разверните этот экземпляр.

  2. Разверните нужную базу данных, разверните узел Таблицы, а затем разверните таблицу, которая содержит триггер, который вы хотите отключить.

  3. Разверните Триггеры, щелкните правой кнопкой мыши на триггере, чтобы отключить его, и затем нажмите Отключить.

  4. Чтобы включить триггер, выберите команду Включить.

Использование Transact-SQL

Удаление триггера DML

  1. Подключитесь к движку базы данных.

  2. На панели «Стандартная» нажмите Создать запрос.

  3. Скопируйте и вставьте следующие примеры в окно запроса. Выполните инструкцию CREATE TRIGGER , чтобы создать триггер Sales.bonus_reminder . Чтобы удалить триггер, выполните инструкцию DROP TRIGGER .

--Create the trigger.  
USE AdventureWorks2022;  
GO  
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL  
    DROP TRIGGER Sales.bonus_reminder;  
GO  
CREATE TRIGGER Sales.bonus_reminder  
ON Sales.SalesPersonQuotaHistory  
WITH ENCRYPTION  
AFTER INSERT, UPDATE   
AS RAISERROR ('Notify Compensation', 16, 10);  
GO  
  
--Delete the trigger.  
USE AdventureWorks2022;  
GO  
IF OBJECT_ID ('Sales.bonus_reminder', 'TR') IS NOT NULL  
   DROP TRIGGER Sales.bonus_reminder;  
GO  
  

Отключение и включение триггера DML

  1. Подключитесь к модулю СУБД.

  2. На панели «Стандартная» нажмите Создать запрос.

  3. Скопируйте и вставьте следующие примеры в окно запроса. Выполните инструкцию CREATE TRIGGER , чтобы создать триггер Sales.bonus_reminder . Чтобы отключить или включить триггер, выполните соответственно инструкцию DISABLE TRIGGER или ENABLE TRIGGER .

--Create the trigger.  
USE AdventureWorks2022;  
GO  
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL  
    DROP TRIGGER Sales.bonus_reminder;  
GO  
CREATE TRIGGER Sales.bonus_reminder  
ON Sales.SalesPersonQuotaHistory  
WITH ENCRYPTION  
AFTER INSERT, UPDATE   
AS RAISERROR ('Notify Compensation', 16, 10);  
GO  
  
--Disable the trigger.  
USE AdventureWorks2022;  
GO  
DISABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;  
GO  
  
--Enable the trigger.  
USE AdventureWorks2022;  
GO  
ENABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;  
GO  

См. также

ALTER TRIGGER (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
DROP TRIGGER (Transact-SQL)
ENABLE TRIGGER (Transact-SQL)
DISABLE TRIGGER (Transact-SQL)
EVENTDATA (Transact-SQL)
Получение сведений о триггерах DML
sp_help (Transact-SQL)
sp_helptrigger (Transact-SQL)
sys.triggers (Transact-SQL)
sys.trigger_events (Transact-SQL)
sys.sql_modules (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)