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

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

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

  • Перед началом работы выполните следующие действия.

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

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

  • Для удаления или отключения триггера DML используется:

    Среда SQL Server Management Studio

    Transact-SQL

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

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

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

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

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

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

Разрешения

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

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

Значок стрелки, используемый со ссылкой «В начало»[Top]

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

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

  1. В обозревателе объектов подключитесь к экземпляру компонента Компонент Database Engine и разверните его.

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

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

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

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

  1. В обозревателе объектов подключитесь к экземпляру компонента Компонент Database Engine и разверните его.

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

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

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

Значок стрелки, используемый со ссылкой «В начало»[Top]

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

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

  1. Подключитесь к компоненту Компонент Database Engine.

  2. На стандартной панели выберите пункт Создать запрос.

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

--Create the trigger.
USE AdventureWorks2012;
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 AdventureWorks2012;
GO
IF OBJECT_ID ('Sales.bonus_reminder', 'TR') IS NOT NULL
   DROP TRIGGER Sales.bonus_reminder;
GO

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

  1. Подключитесь к компоненту Компонент Database Engine.

  2. На стандартной панели выберите пункт Создать запрос.

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

--Create the trigger.
USE AdventureWorks2012;
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 AdventureWorks2012;
GO
DISABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;
GO

--Enable the trigger.
USE AdventureWorks2012;
GO
ENABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;
GO

Значок стрелки, используемый со ссылкой «В начало»[Top]

См. также

Справочник

ALTER TRIGGER (Transact-SQL)

CREATE TRIGGER (Transact-SQL)

DROP TRIGGER (Transact-SQL)

ENABLE TRIGGER (Transact-SQL)

DISABLE TRIGGER (Transact-SQL)

EVENTDATA (Transact-SQL)

sp_help (Transact-SQL)

sp_helptrigger (Transact-SQL)

sys.triggers (Transact-SQL)

sys.trigger_events (Transact-SQL)

sys.sql_modules (Transact-SQL)

sys.assembly_references (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)

Основные понятия

Получение сведений о триггерах DML