DISABLE TRIGGER (Transact-SQL)

  • 05/10/2017
  • 2 perc olvasás
    • W
    • c
    • r
    • i
    • M
    • +7

Az alábbiakra vonatkozik: SQL Server (minden támogatott verzió) Azure SQL Database

Tiltja a trigger-t.

Transact-SQL szintaxis konvenciók

Szintaxis

DISABLE TRIGGER { trigger_name | ALL } ON { object_name | DATABASE | ALL SERVER } 

Megjegyzés

Az SQL Server 2014 és korábbi verziók Transact-SQL-szintaxisának megtekintéséhez lásd a korábbi verziók dokumentációját.

Argumentumok

schema_name
Az a séma neve, amelyhez a trigger tartozik. A schema_name nem adható meg DDL vagy bejelentkezési triggerek esetén.

trigger_name
A letiltandó trigger neve.

ALL
Megjelöli, hogy az ON záradék hatókörében meghatározott összes trigger letiltásra kerül.

Vigyázat

A SQL Server az egyesített replikációra közzétett adatbázisokban hoz létre triggereket. Az ALL megadása a közzétett adatbázisokban letiltja ezeket az triggereket, ami megzavarja a replikációt. Az ALL megadása előtt ellenőrizze, hogy az aktuális adatbázis nincs-e publikálva egyesített replikációra.

objektumnév
A tábla vagy nézet neve, amelyen a DML-trigger trigger_név végrehajtása céljából készült.

DATABASE
DDL-trigger esetén azt jelzi, hogy a trigger_név az adatbázis hatókörével történő végrehajtás céljából készült vagy módosult.

ALL SERVER
Azokra vonatkozik:

Egy DDL-trigger esetében azt jelzi, hogy a trigger_name úgy lett létrehozva vagy módosítva, hogy a végrehajtás kiszolgálói hatókörrel történjen. Az ALL SERVER a bejelentkezési triggerekre is vonatkozik.

Figyelem

Ez a beállítás nem érhető el zárt adatbázisban.

Megjegyzések

A triggerek létrehozásakor alapértelmezés szerint engedélyezve vannak. Egy trigger letiltása nem törli azt. A kiváltó továbbra is objektumként létezik az aktuális adatbázisban. A kiváltó azonban nem lép működésbe, amikor végrehajtásra kerülnek azok a Transact-SQL utasítások, amelyekre programozták. Az triggerek újra engedélyezhetők az ENABLE TRIGGER paranccsal. A táblákon definiált DML-triggerek szintén letilthatók vagy engedélyezhetők az ALTER TABLE használatával.

A trigger ALTER TRIGGER utasítással történő módosítása engedélyezi a triggert.

Jogosultságok

A DML-trigger letiltásához a felhasználónak legalább ALTER jogosultsággal kell rendelkeznie azon a táblán vagy nézeten, amelyen a trigger létrehozásra került.

A szerver hatókörű (ON ALL SERVER) DDL-trigger vagy bejelentkezési trigger letiltásához a felhasználónak CONTROL SERVER jogosultsággal kell rendelkeznie a szerveren. Egy adatbázis hatókörű (ON DATABASE) DDL-trigger letiltásához a felhasználónak legalább ALTER ANY DATABASE DDL TRIGGER jogosultsággal kell rendelkeznie az aktuális adatbázisban.

Példák

A következő példák az AdventureWorks2012 adatbázisban vannak leírva.

A. DML-trigger letiltása egy táblán

A következő példa letiltja a Person táblán létrehozott uAddress trigger-t.

DISABLE TRIGGER Person.uAddress ON Person.Address; GO 

B. DDL-trigger letiltása

A következő példa létrehoz egy safety DDL-triggert adatbázis hatókörrel, majd letiltja azt.

CREATE TRIGGER safety ON DATABASE FOR DROP_TABLE, ALTER_TABLE AS PRINT 'You must disable Trigger "safety" to drop or alter tables!' ROLLBACK; GO DISABLE TRIGGER safety ON DATABASE; GO 

C. Az azonos hatókörrel definiált összes trigger letiltása

A következő példa letiltja a kiszolgáló hatókörrel létrehozott összes DDL-triggert.

DISABLE Trigger ALL ON ALL SERVER; GO 

See Also

ENABLE TRIGGER (Transact-SQL)
ALTER TRIGGER (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
DROP TRIGGER (Transact-SQL)
sys.triggers (Transact-SQL)

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.