Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Kikapcsolja a triggert.
Transact-SQL szintaxis konvenciók
Szemantika
DISABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }
ON { object_name | DATABASE | ALL SERVER } [ ; ]
Arguments
schema_name
Ez annak a sémának a neve, amelyhez a kiváltó kapcsoló.
schema_name nem lehet megadni DDL vagy bejelentkezési triggerekhez.
trigger_name
A kikapcsolandó trigger neve van?
ALL
Jelzi, hogy az ON klauzulájának hatálya alatt definiált összes trigger le van tiltva.
Caution
Az SQL Server triggereket hoz létre adatbázisokban, amelyeket az egyesítés replikációhoz teselnek közzé. Ha MIND-et megadunk közzétett adatbázisokban, az letiltja ezeket a triggereket, ami megzavarja a replikációt. Ellenőrizd, hogy a jelenlegi adatbázis nem van közzétéve az egyesítés replikációhoz, mielőtt ALL-t megadnánk.
object_name
Ez annak a tábla vagy nézetnek a neve, amelyen a DML trigger trigger_name a végrehajtásra készült.
DATABASE
DDL trigger esetén azt jelzi, hogy trigger_name létrehozták vagy módosították, hogy adatbázis hatókörrel hajtson végre.
MINDEN KISZOLGÁLÓ
Az: SQL Server 2008 (10.0.x) és újabb verziókra vonatkozik.
DDL trigger esetén azt jelzi, hogy trigger_name szerver hatótávolsággal készült vagy módosított volt. Az ALL SERVER a bejelentkezési triggerekre is vonatkozik.
Megjegyzés:
Ez az opció nem érhető el egy zárt adatbázisban.
Megjegyzések
A triggerek alapértelmezés szerint engedélyezve vannak, amikor létrehozzák őket. 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. Azonban a ravasz nem működik, ha bármilyen Transact-SQL utasítást hajtanak végre, amelyen programozták. A triggereket újra engedélyezhetjük az ENABLE TRIGGER használatával. A táblákon definiált DML triggerek szintén letilthatók vagy engedélyezhetők az ALTER TABLE használatával.
Az ALTER TRIGGER utasítással történő ravaszok megváltoztatása lehetővé teszi a triggert.
Permissions
A DML trigger letiltásához legalább a felhasználónak ALTER jogosultsággal kell rendelkeznie azon a táblázaton vagy nézeten, ahol a trigger létrejött.
Egy szerver hatótávolságú DDL trigger (ALL SERVEREN) vagy bejelentkezési trigger letiltásához a felhasználónak CONTROL SERVER engedélyt kell kell biztosítania a szerveren. Egy DDL trigger (adatbázis hatókörű) kikapcsolásához legalább a felhasználónak ALTER ANY DATABASE DDL TRIGGER jogosultsággal kell rendelkeznie az aktuális adatbázisban.
Példák
A cikkben szereplő kódminták a AdventureWorks2025 vagy AdventureWorksDW2025 mintaadatbázist használják, amelyet a Microsoft SQL Server-minták és közösségi projektek kezdőlapjáról tölthet le.
A. A DML trigger letiltása egy asztalon
A következő példa letiltja a táblán uAddresslétrehozott triggeretPerson.
DISABLE TRIGGER Person.uAddress ON Person.Address;
GO
B. DDL trigger kikapcsolása
A következő példa létrehoz egy DDL triggeret safety adatbázis scope-tal, majd letiltja.
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. Minden trigger kikapcsolása, amely ugyanazzal a hatótávval volt definiálva,
A következő példa letiltja az összes DDL triggert, amelyet a szerver hatókörben hoztak létre.
DISABLE Trigger ALL ON ALL SERVER;
GO
Lásd még:
AZ INDÍTÓ ENGEDÉLYEZÉSE (Transact-SQL)
ALTER TRIGGER (Transact-SQL)
LÉTREHOZNI TRIGGERET (Transact-SQL)
EJTŐ TRIGGER (Transact-SQL)
sys.triggers (Transact-SQL)