- 05/10/2017
- 2 minutes to read
-
- W
- c
- r
- i
- M
-
+7
Käytetään: SQL Server (kaikki tuetut versiot) Azure SQL -tietokanta
Poista laukaisin käytöstä.
Transact-SQL-syntaksikonventiot
Syntaksi
DISABLE TRIGGER { trigger_name | ALL } ON { object_name | DATABASE | ALL SERVER }
Huomautus
Katso SQL Server 2014:n ja sitä aikaisempien SQL Server 2014:n ja sitä aikaisempien versioiden transact-SQL-syntaksia kohdasta Aiempien versioiden dokumentointi.
Argumentit
schema_name
On sen skeeman nimi, johon laukaisin kuuluu. DDL- tai kirjautumistriggereille ei voida määrittää schema_name.
trigger_name
On poistettavan triggerin nimi.
ALL
Merkitsee, että kaikki ON-lausekkeen vaikutusalueella määritetyt triggerit poistetaan käytöstä.
Varoitus
SQL Server luo triggereitä tietokantoihin, jotka on julkaistu yhdistelmäreplikointia varten. ALL:n määrittäminen julkaistuissa tietokannoissa poistaa nämä laukaisimet käytöstä, mikä häiritsee replikointia. Varmista, että nykyistä tietokantaa ei ole julkaistu yhdistelmäreplikointia varten, ennen kuin määrität ALL.
kohteen_nimi
On sen taulun tai näkymän nimi, johon DML-triggerin trigger_nimi luotiin suoritettavaksi.
TIETOKANTA
Mikäli kyseessä on DDL-triggeri, ilmaisee, että triggernimi_nimi luotiin tai sitä muokattiin siten, että se voidaan suorittaa tietokannan laajuuden puitteissa.
ALL PALVELIN
Käytetään seuraavissa kohteissa: DDL-triggeri:
DDL-triggerin osalta osoittaa, että trigger_name luotiin tai sitä muutettiin suoritettavaksi palvelimen laajuudella. ALL SERVER koskee myös kirjautumistriggereitä.
Huomautus
Tämä asetus ei ole käytettävissä suljetussa tietokannassa.
Huomautuksia
Triggerit ovat oletusarvoisesti käytössä, kun ne luodaan. Laukaisimen poistaminen käytöstä ei poista sitä. Laukaisin on edelleen olemassa objektina nykyisessä tietokannassa. Laukaisin ei kuitenkaan laukea, kun mitään Transact-SQL-lauseita, joihin se on ohjelmoitu, suoritetaan. Laukaisimet voidaan ottaa uudelleen käyttöön käyttämällä ENABLE TRIGGER. Taulukoihin määritellyt DML-triggerit voidaan myös poistaa käytöstä tai ottaa käyttöön käyttämällä ALTER TABLE -lausetta.
Triggerin muuttaminen ALTER TRIGGER -lausetta käyttämällä ottaa triggerin käyttöön.
Oikeudet
DML-triggerin poistamiseksi käytöstä käyttäjällä on oltava vähintään ALTER-oikeudet taulussa tai näkymässä, johon triggeri on luotu.
Palvelimen laajuisen DDL-triggerin (ON ALL SERVER) tai kirjautumistriggerin poistamiseksi käytöstä käyttäjällä on oltava CONTROL SERVER -oikeus palvelimella. Tietokannan laajuisen (ON DATABASE) DDL-triggerin poistamiseksi käytöstä käyttäjällä on oltava vähintään ALTER ANY DATABASE DDL TRIGGER -oikeus nykyisessä tietokannassa.
Esimerkkejä
Seuraavat esimerkit on kuvattu AdventureWorks2012-tietokannassa.
A. DML-triggerin poistaminen käytöstä taulussa
Tauluun Person
luotu triggeri uAddress
poistetaan käytöstä seuraavassa esimerkissä.
DISABLE TRIGGER Person.uAddress ON Person.Address; GO
B. DDL-triggerin poistaminen käytöstä
Seuraava esimerkki luo DDL-triggerin safety
, jolla on tietokannan laajuus, ja poistaa sen sitten käytöstä.
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. Kaikkien samalla laajuudella määritettyjen liipaisimien poistaminen käytöstä
Seuraava esimerkki poistaa käytöstä kaikki palvelimen laajuudella luodut DDL-liipaisimet.
DISABLE Trigger ALL ON ALL SERVER; GO
Katso myös
ENABLE TRIGGER (Transact-SQL)
ALTER TRIGGER (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
DROP TRIGGER (Transact-SQL)
sys.triggers (Transact-SQL)