Hinzufügen "IF not EXISTS" create trigger-Anweisung

Ich bin mit sql server 2008 R2. Genauer gesagt, Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 lauten (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Standard Edition (64-bit) auf Windows NT 6.1 (Build 7601: Service Pack 1) (Hypervisor). Ich bin neu in sql server und Prozeduren/Trigger. Ich habe den folgenden code, um einen trigger erstellen (es funktioniert):

CREATE TRIGGER [dbo].[Insert_WithdrawalCodes] 
   ON  [dbo].[PupilWithdrawalReason] 
   AFTER INSERT
AS 
BEGIN
    SET NOCOUNT ON;
        UPDATE [dbo].[PupilWithdrawalReason] SET DateCreated=dbo.SYSTEMTIME() 
        WHERE WithdrawalCodeID IN (SELECT WithdrawalCodeID FROM inserted)
END

Wie kann ich bedingt zu erstellen, nur wenn der trigger nicht vorhanden ist? Was mache ich hier falsch? Stackoverflow hat gute Beispiele von "nicht vorhanden", aber ich kann nicht ankommen dieses zu wirken in Verbindung mit einem ERSTELLEN. Hier ist einer meiner erfolglosen Bemühungen:

IF NOT EXISTS (SELECT * FROM sys.objects WHERE type = 'TR' AND name = 'Insert_WithdrawalCodes')
   exec('CREATE TRIGGER [dbo].[Insert_WithdrawalCodes] ON  [dbo].[PupilWithdrawalReason] AFTER INSERT AS BEGIN SET NOCOUNT ON; UPDATE [dbo].[PupilWithdrawalReason] SET DateCreated=dbo.SYSTEMTIME() WHERE WithdrawalCodeID IN (SELECT WithdrawalCodeID FROM inserted) END')
GO

InformationsquelleAutor der Frage thebiggestlebowski | 2015-01-29

Schreibe einen Kommentar