Database reference - AdventureWorks2008

AdventureWorks2008 -  triggers -  [Production].[uWorkOrder]

Description

AFTER UPDATE trigger that inserts a row in the TransactionHistory table, updates ModifiedDate in the WorkOrder table. 

Trigger properties

namevalue
parentWorkOrder
typeAfter Update   
is first insertfalse
is last insertfalse
is first updatefalse
is last updatefalse
is last deletefalse
is first deletefalse
is disabledfalse
is not for replicationfalse

Dependency graph

uspLogErroruspPrintErrorTransactionHistoryWorkOrderuWorkOrder

Objects that [Production].[uWorkOrder] depends on

nameobject typedatabaseserverlevel
uspLogErrorstored procedureAdventureWorks2008SPRING\KATMAI1
uspPrintErrorstored procedureAdventureWorks2008SPRING\KATMAI2
ErrorLogtableAdventureWorks2008SPRING\KATMAI2
TransactionHistorytableAdventureWorks2008SPRING\KATMAI1
WorkOrdertableAdventureWorks2008SPRING\KATMAI1

Code

CREATE TRIGGER [Production].[uWorkOrder] ON [Production].[WorkOrder] 
AFTER UPDATE AS 
BEGIN
    DECLARE @Count int;

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

    SET NOCOUNT ON;

    BEGIN TRY
        IF UPDATE([ProductID]) OR UPDATE([OrderQty])
        BEGIN
            INSERT INTO [Production].[TransactionHistory](
                [ProductID]
                ,[ReferenceOrderID]
                ,[TransactionType]
                ,[TransactionDate]
                ,[Quantity])
            SELECT 
                inserted.[ProductID]
                ,inserted.[WorkOrderID]
                ,'W'
                ,GETDATE()
                ,inserted.[OrderQty]
            FROM inserted;
        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