Please help, for I am a beginner with SQL Trigger.

sql server Canada
  • 13 years ago

    Please help correcting this trigger, Thanks! Much appreciated.
    The problem i'm having is that, after a bulk insert into AirInvTemp, the trigger doesn't
    automatically copied the selected the filtered values into the new table AirInvoice, AirInvoiceItem

    USE

    [GUI]

    GO

    /****** Object: Trigger [dbo].[TR_AirInvTemp] Script Date: 04/10/2007 11:06:57 ******/

    SET

    ANSI_NULLS ON

    GO

    SET

    QUOTED_IDENTIFIER OFF

    GO

    CREATE

     TRIGGER [dbo].[TR_AirInvTemp] ON [dbo].[AirInvTemp]

    FOR

    INSERT

    AS

    DECLARE

    @DLI VARCHAR(3)

    DECLARE

    @VAT VARCHAR(1)

    DECLARE

    @TXNCODE VARCHAR(1)

    SELECT

    @TXNCode = TXNCode, @DLI = DLI034 FROM Inserted

    SELECT

    @VAT = ChargeCode.VAT FROM ChargeCode WHERE ChargeCode.Code = @DLI

    IF

    (@TXNCode = 'A' AND @VAT = 'Y')

    BEGIN

    INSERT INTO AirInvoice (

    Type

    , TXNCode, InvNo, InvDate, HawbNo, MawbNo,

    CustomerId

    , CustomerName, Attention, Addrs, City,

    State

    , Zip, Country, UniformId, FlyNo, FlyDate,

    Origin

    , Destination, Qty, Unit, GW, VolumeW,

    ChargeW

    , WType, CommodityCode, Remark, Currency,

    Collect

    , VATAmount, UserId )

    SELECT

    Type

    , TXNCode, InvNo, InvDate, HawbNo, MawbNo,

    CustomerId

    , CustomerName, Attention, Addrs, City,

    State

    , Zip, Country, UniformId, FlyNo, FlyDate,

    Origin

    , Destination, Qty, Unit, GW, VolumeW,

    ChargeW

    , WType, CommodityCode, Remark, Currency,

    Collect

    , VATAmount, UserId

    FROM Inserted

    INSERT INTO AirInvoiceItem (

    InvNo

    , ChargeCode, Charge, Term )

    SELECT

    InvNo

    , DLI034, DLI035, DLI036

    FROM Inserted

    INSERT INTO AirInvoiceHistory (

    Type

    , TXNCode, InvNo, InvDate, HawbNo, MawbNo,

    CustomerId

    , CustomerName, Attention, Addrs, City,

    State

    , Zip, Country, UniformId, FlyNo, FlyDate,

    Origin

    , Destination, Qty, Unit, GW, VolumeW,

    ChargeW

    , WType, CommodityCode, Remark, Currency,

    Collect

    , VATAmount, UserId, DateOccured, ActionTaken )

    SELECT

    Type

    , TXNCode, InvNo, InvDate, HawbNo, MawbNo,

    CustomerId

    , CustomerName, Attention, Addrs, City,

    State

    , Zip, Country, UniformId, FlyNo, FlyDate,

    Origin

    , Destination, Qty, Unit, GW, VolumeW,

    ChargeW

    , WType, CommodityCode, Remark, Currency,

    Collect

    , VATAmount, UserId,

    CONVERT(VARCHAR, GETDATE(), 112) AS DT, 'Add' AS ACT

    FROM Inserted

    INSERT INTO AirInvoiceItemHistory (

    InvNo

    , ChargeCode, Charge, Term, DateOccured, ActionTaken )

    SELECT

    InvNo

    , DLI034, DLI035, DLI036,

    CONVERT(VARCHAR,GETDATE(),112) AS DT, 'Add' AS ACT

    FROM Inserted

    END

    ELSE

    IF(@TXNCode = 'D' AND @VAT = 'Y')

    BEGIN

    INSERT INTO AirInvoiceHistory (

    Type

    , TXNCode, InvNo, InvDate, HawbNo, MawbNo,

    CustomerId

    , CustomerName, Attention, Addrs, City,

    State

    , Zip, Country, UniformId, FlyNo, FlyDate,

    Origin

    , Destination, Qty, Unit, GW, VolumeW,

    ChargeW

    , WType, CommodityCode, Remark, Currency,

    Collect

    , VATAmount, UserId, DateOccured, ActionTaken )

    SELECT

    Type

    , TXNCode, InvNo, InvDate, HawbNo, MawbNo,

    CustomerId

    , CustomerName, Attention, Addrs, City,

    State

    , Zip, Country, UniformId, FlyNo, FlyDate,

    Origin

    , Destination, Qty, Unit, GW, VolumeW,

    ChargeW

    , WType, CommodityCode, Remark, Currency,

    Collect

    , VATAmount, UserId,

    CONVERT(VARCHAR,GETDATE(),112) AS DT, 'Delete' AS ACT

    FROM Inserted

    INSERT INTO AirInvoiceItemHistory (

    InvNo

    , ChargeCode, Charge, Term, DateOccured, ActionTaken )

    SELECT

    InvNo

    , DLI034, DLI035, DLI036,

    CONVERT(VARCHAR,GETDATE(),112) AS DT, 'Delete' AS ACT

    FROM Inserted

    END

    ELSE

    IF(@TXNCode = 'C' AND @VAT = 'Y')

    BEGIN

    INSERT INTO AirInvoice(

    Type

    , TXNCode, InvNo, InvDate, HawbNo, MawbNo,

    CustomerId

    , CustomerName, Attention, Addrs, City,

    State

    , Zip, Country, UniformId, FlyNo, FlyDate,

    Origin

    , Destination, Qty, Unit, GW, VolumeW,

    ChargeW

    , WType, CommodityCode, Remark, Currency,

    Collect

    , VATAmount, UserId )

    SELECT

    Type

    , TXNCode, InvNo, InvDate, HawbNo, MawbNo,

    CustomerId

    , CustomerName, Attention, Addrs, City,

    State

    , Zip, Country, UniformId, FlyNo, FlyDate,

    Origin

    , Destination, Qty, Unit, GW, VolumeW,

    ChargeW

    , WType, CommodityCode, Remark, Currency,

    Collect

    , VATAmount, UserId

    FROM Inserted

    INSERT INTO AirInvoiceItem (

    InvNo

    , ChargeCode, Charge, Term )

    SELECT

    InvNo

    , DLI034, DLI035, DLI036

    FROM Inserted

    INSERT INTO AirInvoiceHistory (

    Type

    , TXNCode, InvNo, InvDate, HawbNo, MawbNo,

    CustomerId

    , CustomerName, Attention, Addrs, City,

    State

    , Zip, Country, UniformId, FlyNo, FlyDate,

    Origin

    , Destination, Qty, Unit, GW, VolumeW,

    ChargeW

    , WType, CommodityCode, Remark, Currency,

    Collect

    , VATAmount, UserId, DateOccured, ActionTaken )

    SELECT

    Type

    , TXNCode, InvNo, InvDate, HawbNo, MawbNo,

    CustomerId

    , CustomerName, Attention, Addrs, City,

    State

    , Zip, Country, UniformId, FlyNo, FlyDate,

    Origin

    , Destination, Qty, Unit, GW, VolumeW,

    ChargeW

    , WType, CommodityCode, Remark, Currency,

    Collect

    , VATAmount, UserId,

    CONVERT(VARCHAR,GETDATE(),112) AS DT, 'Update' AS ACT

    FROM Inserted

    INSERT INTO AirInvoiceItemHistory (

    InvNo

    , ChargeCode, Charge, Term, DateOccured, ActionTaken )

    SELECT

    InvNo

    , DLI034, DLI035, DLI036,

    CONVERT(VARCHAR,GETDATE(),112) AS DT, 'Update' AS ACT

    FROM Inserted

    END

Post a reply

No one has replied yet! Why not be the first?

Sign in or Join us (it's free).

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“Linux is only free if your time has no value” - Jamie Zawinski