Database reference - AdventureWorks2008

AdventureWorks2008 -  triggers -  [Purchasing].[dVendor]

Description

INSTEAD OF DELETE trigger which keeps Vendors from being deleted. 

Trigger properties

namevalue
parentVendor
typeInstead of Delete   
is first insertfalse
is last insertfalse
is first updatefalse
is last updatefalse
is last deletefalse
is first deletefalse
is disabledfalse
is not for replicationtrue

Dependency graph

uspLogErroruspPrintErrorVendordVendor

Objects that [Purchasing].[dVendor] depends on

nameobject typedatabaseserverlevel
uspLogErrorstored procedureAdventureWorks2008SPRING\KATMAI1
uspPrintErrorstored procedureAdventureWorks2008SPRING\KATMAI2
ErrorLogtableAdventureWorks2008SPRING\KATMAI2
VendortableAdventureWorks2008SPRING\KATMAI1
NametypeAdventureWorks2008SPRING\KATMAI2
FlagtypeAdventureWorks2008SPRING\KATMAI2
AccountNumbertypeAdventureWorks2008SPRING\KATMAI2

Code

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;



Documentation generated by SqlSpec