SQL Server Wyłącz wyzwalacz

SQL Server Wyłącz wyzwalacz

Spust jest procedurą przechowywaną, gdy na serwerze występuje określone działanie/zdarzenie. Różne rodzaje wyzwalaczy można powiązać z poszczególnymi działaniami.

Ten post ma na celu pokazanie, w jaki sposób możesz wyłączyć istniejący spust na serwerze SQL. Wyłączenie spustu może tymczasowo pozwolić na wykonanie akcji bez kolejnego zdarzenia. Jest to bardzo przydatne podczas rozwiązywania problemów lub wykonywania operacji konserwacyjnych na serwerze.

Tworzenie spustu testowego

Przed omówieniem, jak wyłączyć istniejący spust na serwerze SQL, zacznijmy od zdefiniowania prostego wyzwalacza do celów ilustracyjnych.

Zacznij od utworzenia bazy danych:

Zrzuć bazę danych, jeśli istnieje local_db;
Utwórz bazę danych local_db;
Użyj local_db;


Następnie zdefiniuj tabelę, jak pokazano:

Utwórz bazy danych tabeli (
Id Int Not Null tożsamość (1,1) klucz podstawowy,
Server_name Varchar (50),
server_address varchar (255) nie null,
kompresja_method varchar (100) Domyślnie „Brak”,
size_on_disk float nie null,
size_Compressed Float,
total_records int not null,
data init_date
);


Następnie utwórz wyzwalacz, aby wyłączyć liczbę dotkniętych wierszy, gdy nastąpi wkładka lub usuń działanie.

Utwórz nostatus wyzwalacza
Na bazach danych
Po wstawieniu usuń
JAK
ZACZYNAĆ
Ustaw NoCount On;
KONIEC;

SQL Server Wyłącz zapytanie Trigger

Na szczęście SQL Server zapewnia nam natywną metodę wyłączenia spustu, jak pokazano w poniższej składni:

Wyłącz wyzwalacz [Schema_name . ] Trigger_name [,… N] | WSZYSTKO
ON Object_name | Baza danych | All Server [; ]

Zapytanie argumenty

Zapytanie akceptuje następujące parametry:

    1. Schema_name - określa to nazwę schematu, na którym przebywa spust. Parametr SHCEMA_NAME nie jest obsługiwany dla wyzwalaczy języka definicji danych lub wyzwalaczy logowania.
    2. Trigger_name - Nazwa wyzwalacza, którą chcesz wyłączyć.
    3. All - ten parametr pozwala na wyłączenie wszystkich wyzwalaczy zdefiniowanych w klauzuli ON.
    4. Object_name - nazwa tabeli lub widoku, na którym przebywa spust.
    5. Baza danych - określa zakres spustu DDL.

W zależności od konfiguracji użytkownika docelowego i serwera zapytanie wyzwalające wymaga zmiany uprawnień w tabeli lub widoku.

Przykład - wyłączenie spustu DML na tabeli

Poniższy przykład pokazuje, jak wyłączyć nostat przyjęcia spustu w tabeli baz danych.

Wyłącz bazy danych wyzwalających.Nostatus on
bazy danych;


Uruchomienie powyższego oświadczenia powinno wyłączyć spust pod określoną nazwą. Zapewnia to, że wyzwalacz nie zostanie zwolniony na wkładanie lub usuwanie działań.

Przykład 2 - Wyłącz wyzwalacz za pomocą SSMS

Możesz także wyłączyć wyzwalacz za pomocą SQL Server Management Studio. Otwórz eksplorator obiektu. Znajdź docelową bazę danych -> Tabela docelowa - wyzwalacze.

Kliknij prawym przyciskiem myszy i wybierz Wyłącz.


Po powodzenia powinieneś zobaczyć okno dialogowe sukcesu.

Przykład 3 - SQL Server Wyłącz wszystkie wyzwalacze w tabeli/widoku

Możesz także wyłączyć wszystkie wyzwalacze w danej tabeli lub widoku za pomocą polecenia podanego w fragmencie poniżej:

Wyłącz wyzwalacz
local_db.bazy danych;


Powyższe zapytanie wyłączy wszystkie wyzwalacze w tabeli baz danych.

Przykład 4 - SQL Server Wyłącz wszystkie wyzwalacze w bazie danych

Załóżmy, że chcesz wykonać wyłącz spust całego bazy danych. Możesz wykonać zapytanie, jak podane poniżej:

Wyłącz wyzwalacz
Baza danych;

Zakończenie

W tym poście omówiliśmy, jak korzystać z poleceń Wyłącz w SQL Server, aby wyłączyć wyzwalacze na różnych poziomach obiektów.

Dziękuje za przeczytanie!!