How to add “IF NOT EXISTS” to create trigger statement

后端 未结 4 798
无人及你
无人及你 2021-01-01 09:03

I am using sql server 2008 R2. More specifically, Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Stan

4条回答
  •  旧时难觅i
    2021-01-01 09:16

    IF EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[TRIGGERNAME]'))
    DROP TRIGGER [dbo].[TRIGGERNAME]
    go
    IF  EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[TABLENAME]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
    BEGIN
    CREATE   TRIGGER [dbo].[TRIGGERNAME] ON [dbo].[TABLENAME] FOR INSERT, UPDATE 
    
    AS ...
    
    END
    

    Based on your updated question... try this:

    IF NOT EXISTS (select * from sys.objects where type = 'TR' and name = 'Insert_WithdrawalCodes')
    EXEC dbo.sp_executesql @statement = N'
    
    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
    
    
     '
    

提交回复
热议问题