Megosztás a következőn keresztül:


DML-eseményindítók törlése vagy letiltása

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Ez a témakör azt ismerteti, hogyan törölhet vagy tilthat le egy DML-eseményindítót az SQL Server Management Studio vagy a Transact-SQL használatával.

ebben a témakörben

Mielőtt hozzákezdene

Ajánlások

  • Az eseményindító törlésekor eltávolítja az aktuális adatbázisból. A tábla és az alapjául szolgáló adatok nem lesznek hatással. A tábla törlése automatikusan törli a tábla eseményindítóit.

  • Az eseményindító alapértelmezés szerint engedélyezve van, amikor létrehozzák.

  • Az eseményindító letiltása nem veti el. Az eseményindító továbbra is objektumként létezik az aktuális adatbázisban. Az eseményindító azonban nem aktiválódik, ha a programozott INSERT, UPDATE vagy DELETE utasítást végrehajtja. A letiltott eseményindítók újra engedélyezhetők. A trigger engedélyezése nem hozza létre újra. Az eseményindító ugyanúgy aktiválódik, mint az eredeti létrehozáskor.

Biztonság

Engedélyek

A DML-eseményindító törléséhez ALTER-engedély szükséges azon a táblán vagy nézeten, amelyen az eseményindító definiálva van.

A DML-eseményindítók letiltásához vagy engedélyezéséhez a felhasználónak legalább alter engedéllyel kell rendelkeznie azon a táblán vagy nézeten, amelyen az eseményindító létre lett hozva.

Az SQL Server Management Studio használata

DML-eseményindító törlése

  1. Object Explorer-ben csatlakozzon az adatbázismotor egy példányához, majd bontsa ki a példányt.

  2. Bontsa ki a kívánt adatbázist, bontsa ki Táblák, majd bontsa ki a törölni kívánt eseményindítót tartalmazó táblát.

  3. Bontsa ki Eseményindítók, kattintson a jobb gombbal az eseményindítóra a törléshez, majd kattintson a Törlésparancsra.

  4. Az Objektum törlése párbeszédpanelen ellenőrizze a törölni kívánt eseményindítót, majd kattintson OKgombra.

DML-eseményindító letiltása és engedélyezése

  1. Object Explorer-ben csatlakozzon az adatbázismotor egy példányához, majd bontsa ki a példányt.

  2. Bontsa ki a kívánt adatbázist, bontsa ki Táblák, majd bontsa ki a letiltani kívánt eseményindítót tartalmazó táblát.

  3. Nyissa meg eseményindítók, kattintson a jobb gombbal az eseményindítóra a letiltáshoz, majd kattintson a Letiltásaparancsra.

  4. Az eseményindító engedélyezéséhez kattintson a engedélyezése gombra.

A Transact-SQL használata

DML-eseményindító törlése

  1. Csatlakozzon az adatbázismotorhoz.

  2. A Standard sávon kattintson Új lekérdezéselemre.

  3. Másolja és illessze be a következő példákat a lekérdezési ablakba. Hajtsa végre a CREATE TRIGGER utasítást a Sales.bonus_reminder eseményindító létrehozásához. Az eseményindító törléséhez hajtsa végre a DROP TRIGGER utasítást.

--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-eseményindító letiltása és engedélyezése

  1. Csatlakozzon az adatbázismotorhoz.

  2. A Standard sávon kattintson Új lekérdezéselemre.

  3. Másolja és illessze be a következő példákat a lekérdezési ablakba. Hajtsa végre a CREATE TRIGGER utasítást a Sales.bonus_reminder eseményindító létrehozásához. Az eseményindító letiltásához és engedélyezéséhez hajtsa végre a TRIGGER letiltása és a TRIGGER engedélyezése utasítást.

--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  

Lásd még:

ALTER TRIGGER (Transact-SQL)
LÉTREHOZNI TRIGGERET (Transact-SQL)
EJTŐ TRIGGER (Transact-SQL)
AZ INDÍTÓ ENGEDÉLYEZÉSE (Transact-SQL)
TRIGGER LETILTÁSA (Transact-SQL)
ESEMÉNYADATOK (Transact-SQL)
Információk szerzése a DML-eseményindítókról
sp_help (Transact-SQL)
sp_helptrigger (Transact-SQL)
sys.triggers (Transact-SQL)
sys.trigger_events (Transact-SQL)
sys.sql_modulok (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)