Northwind Database (Document! X Sample)
AdventureWorks Database / Purchasing Schema / Purchasing.Vendor Table / dVendor Trigger
In This Topic
    dVendor Trigger
    In This Topic
    Description
    INSTEAD OF DELETE trigger which keeps Vendors from being deleted.
    Properties
    Creation Date27/10/2017 14:33
    Encrypted
    Ansi Nulls
    Trigger Type
    Insert Delete Update After Instead Of
    Trigger Definition
    CREATE TRIGGER [Purchasing].[dVendor] ON [Purchasing].[Vendor] 
    INSTEAD OF DELETE NOT FOR REPLICATION AS 
    
    BEGIN
        DECLARE @Count int;
    
        SET @Count = @@ROWCOUNT;
        IF @Count = 0 
            RETURN;
    
        SET NOCOUNT ON;
    
        BEGIN TRY
            DECLARE @DeleteCount int;
    
            SELECT @DeleteCount = COUNT(*) FROM deleted;
            IF @DeleteCount > 0 
            BEGIN
                RAISERROR
                    (N'Vendors cannot be deleted. They can only be marked as not active.', -- Message
                    10, -- Severity.
                    1); -- State.
    
            -- Rollback any active or uncommittable transactions
                IF @@TRANCOUNT > 0
                BEGIN
                    ROLLBACK TRANSACTION;
                END
            END;
        END TRY
        BEGIN CATCH
            EXECUTE [dbo].[uspPrintError];
    
            -- Rollback any active or uncommittable transactions before
            -- inserting information in the ErrorLog
            IF @@TRANCOUNT > 0
            BEGIN
                ROLLBACK TRANSACTION;
            END
    
            EXECUTE [dbo].[uspLogError];
        END CATCH;
    END;
    
    See Also