TR_BANKACCOUNTTRANSACTION_INSERT

Definition

Copy


CREATE trigger [dbo].[TR_BANKACCOUNTTRANSACTION_INSERT]
    ON [dbo].[BANKACCOUNTTRANSACTION] 
    AFTER INSERT
    NOT FOR REPLICATION
    AS
    BEGIN
    SET NOCOUNT ON                    
        DECLARE @AccountID uniqueidentifier; SELECT @AccountID=BANKACCOUNTID FROM INSERTED;
        IF NOT EXISTS(SELECT ID FROM DBO.BANKACCOUNT A WHERE A.ID=@AccountID AND A.STATUSCODE=1) BEGIN
            RAISERROR ('Transactions cannot be added to closed bank accounts.',  16, 1)
            ROLLBACK TRANSACTION
        END

        if exists(select BAT.ID from dbo.BANKACCOUNTTRANSACTION BAT
            inner join DELETED D on D.BANKACCOUNTID = BAT.BANKACCOUNTID and D.TRANSACTIONTYPECODE = BAT.TRANSACTIONTYPECODE 
                and D.TRANSACTIONNUMBER = BAT.TRANSACTIONNUMBER
            where BAT.DELETED = 0)
        begin
            raiserror('UIX_BANKACCOUNTTRANSACTION_BANKACCOUNTID_TRANSACTIONTYPECODE_TRANSACTIONNUMBER', 16, 1)
            rollback transaction
        end
    END