나는 모든 데이터베이스가 dbo.SendMail이라는 트리거를 가지고있는 하나의 트리거 (dbo.SendMail 및 다중 데이터베이스 )를 가지고 있습니다.유창한 migrator를 사용하여 트리거가 변경된 경우
나는 데이터베이스 버전을 관리 할 수 FluentMigrator을 사용하고 그리고 난 근처의 시작은 외부 기대, 내가 잘못된 구문 오류주고있다
IF EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[SendMail]'))
BEGIN
ALTER TRIGGER [dbo].[SendMail]
ON [dbo].[Notification]
FOR INSERT
AS
BEGIN
some sql code
END
END
아래에 뭔가를하고 싶어.
이 작업을 수행하는 방법은 무엇입니까?
미리 감사드립니다.
대신에 'OBJECT_ID' 사용 – Sami
시도하고있는 것처럼 꽤 할 수는 없습니다. 트리거의 존재 여부를 확인하고 드롭 한 다음 항상 생성해야합니다. 그렇지 않으면 트리거 내부에서 동적 SQL을 사용하여 트리거를 작성해야합니다. –
@SeanLange하지만 이전에 거기에 있었던 경우에만 트리거를 다시 작성하고 싶었습니다 –