DISABLE TRIGGER (Transact-SQL)

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

Vastaa

Sähköpostiosoitettasi ei julkaista.