/ / Jak odtworzyć wyzwalacz w SQL Server? - SQL Server, wyzwalacze

Jak ponownie utworzyć wyzwalacz w SQL Server? - sql-server, wyzwalacze

używam oświadczenia drop trigger if exist TRIGGER w sqlite, ale serwer sql nie lubi ifkomunikat. (Myślę, że istnieje obraźliwe słowo). Robię to tuż obok mojej instrukcji tworzenia wyzwalacza, ponieważ chcę usunąć starsze wyzwalacze o tej samej nazwie, aby móc je zastąpić nowym.

Jak to zrobić na serwerze SQL?

Odpowiedzi:

2 dla odpowiedzi № 1

Możesz sprawdzić istnienie konkretnego wyzwalacza.

IF EXISTS
(
select name
from sys.objects
where type="TR" and name ="Trigger Name"
)
BEGIN

--Add your Trigger create code here

END

4 dla odpowiedzi nr 2

w SQL Server Management Studio (i myślę, że wQuery Analyzer) kliknij prawym przyciskiem myszy wyzwalacz w eksploratorze i wybierz opcję Skrypt-as, wybierz „Schowaj wyzwalacz” w schowku, a SSMS utworzy składnię T-SQL, aby upuścić ten wyzwalacz.

Przepraszam, nie dałem ci T-SQL, który możesz skopiować i wkleić, ale w ten sposób będziesz wiedział, jak to zrobić następnym razem.


2 dla odpowiedzi nr 3

Uważam, że jest to bardziej kompaktowy SQL Server równoważny MySQL DROP TRIGGER IF EXISTS składnia:

IF OBJECT_ID("XXXX", "TR") IS NOT NULL
DROP TRIGGER XXXX

0 dla odpowiedzi nr 4

Użyłbym czegoś takiego:

IF objectproperty(object_id("dbo.xxx"), "isTrigger") = 1
DROP PROCEDURE dbo.xxx
GO
CREATE TRIGGER dbo.xxx [etc]

zamieniając xxx na nazwę wyzwalacza (i dbo na odpowiedni schemat, jeśli to konieczne).

Alternatywnie możesz po prostu użyć

ALTER TRIGGER dbo.xxx [etc]