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