Database reference - AdventureWorks

AdventureWorks -  triggers -  [HumanResources].[dEmployee]

Description

INSTEAD OF DELETE trigger which keeps Employees from being deleted. 

Trigger properties

namevalue
parentEmployee
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

EmployeedEmployee

Objects that [HumanResources].[dEmployee] depends on

nameobject typelevel
Employeetable1
Flagtype2

Code

CREATE TRIGGER [HumanResources].[dEmployee] ON [HumanResources].[Employee] 
INSTEAD OF DELETE NOT FOR REPLICATION AS 
BEGIN
    DECLARE @Count int;

    SET @Count = @@ROWCOUNT;
    IF @Count = 0 
        RETURN;

    SET NOCOUNT ON;

    BEGIN
        RAISERROR
            (N'Employees cannot be deleted. They can only be marked as not current.', -- Message
            10, -- Severity.
            1); -- State.

        -- Rollback any active or uncommittable transactions
        IF @@TRANCOUNT > 0
        BEGIN
            ROLLBACK TRANSACTION;
        END
    END;
END;

Powered by Yoyodyne © 1971