dbo.SendMailと複数のデータベースと呼ばれるトリガーが1つあります。 すべてのデータベースがトリガーdbo.SendMailを持っているわけではありません。流暢な移行者を使用してトリガーを変更した場合
私は、データベースのバージョンを管理するために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
の下に、それは近くEXTERNAL期待し、開始私にエラー不正な構文を与えているような何かをしたいです。
これを達成する方法はありますか?
ありがとうございます。
IF OBJECT_ID(N'[dbo].[SendMail]', N'TR') IS NOT NULL
-- Do whatever
Else
-- Do something else
代わりに 'OBJECT_ID'を使用してください – Sami
あなたは試しているようにこれを行うことはできません。あなたは、トリガの存在をチェックし、それをドロップし、それから常にそれを作成するか、トリガを作成するためにあなたのbegin内でダイナミックSQLを使用する必要があります。 –
@SeanLangeしかし、私はそれが以前にあった場合にのみトリガーを再作成したい –