Как воссоздать триггер в SQL Server? - PullRequest
3 голосов
/ 19 мая 2010

Я использую оператор drop trigger if exist TRIGGER в SQLite, но серверу SQL не нравится оператор if. (Я думаю, что существует это оскорбительное слово). Я делаю это прямо рядом с моим оператором создания триггера, потому что хочу удалить более старые триггеры с тем же именем, чтобы я мог заменить его новым.

Как мне это сделать на сервере SQL?

Ответы [ 4 ]

4 голосов
/ 19 мая 2010

в SQL Server Management Studio (и, я думаю, в Query Analyzer), щелкните правой кнопкой мыши триггер в проводнике и выберите параметр «Сценарий как», выберите «Триггер отбрасывания» в буфере обмена, и SSMS создаст T-SQL синтаксис для вас, чтобы отбросить этот триггер.

Извините, я не дал вам T-SQL, который вы можете копировать и вставлять, но таким образом вы будете знать, как это сделать в следующий раз.

2 голосов
/ 30 августа 2013

Я считаю, что это более компактный SQL Server, эквивалентный синтаксису MySQL DROP TRIGGER IF EXISTS:

IF OBJECT_ID('XXXX', 'TR') IS NOT NULL
    DROP TRIGGER XXXX
2 голосов
/ 19 мая 2010

Вы можете проверить наличие определенного триггера следующим образом.

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

--Add your Trigger create code here

END
0 голосов
/ 19 мая 2010

Я бы использовал что-то вроде:

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

замена xxx на имя вашего триггера (и dbo на соответствующую схему, если необходимо).

В качестве альтернативы, вы можете просто использовать

ALTER TRIGGER dbo.xxx [etc]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...