s.k.Soni
s.k.Soni

Reputation: 1310

Incorrect syntax near the keyword 'if' in store procedure

I am creating store procedure by query in sql server 2008r2. In store procedure I am inserting data with multiple query with their multiple condition.

Here is my query

alter procedure sp_customervechicleinsert
@customervechiclerefno int,
@customervechicleregdate  datetime,
@customervechiclebillno varchar(10),
@customervechiclecustomername   int,
@customervechicleno int,
@customervechicleamt    decimal(12, 2),
@customervechiclebima   decimal(12, 2),
@customervechiclepassing    decimal(12, 2),
@customervechiclepassingpenalty decimal(12, 2),
@customervechiclecf decimal(12, 2),
@customervechiclecard   decimal(12, 2),
@customervechiclecerti  decimal(12, 2),
@customervechicleop decimal(12, 2),
@customervechicleagentfee   decimal(12, 2),
@customervechiclefile   decimal(12, 2),
@customervechiclebalta  decimal(12, 2),
@customervechiclecng decimal(12, 2),
@customervechicleexpiry decimal(12, 2),
@customervechicleguarantee  decimal(12, 2),
@customervechiclehp decimal(12, 2),
@customervechiclediscount   decimal(12, 2),
@customervechicletotalpayment   decimal(12, 2),
@customervechicledp decimal(12, 2),
@customervechicleloan   decimal(12, 2),
@customervechicleper    decimal(12, 2),
@customervechicleservicetax decimal(12, 2),
@customervechiclemonth  int,
@customervechicleinstallmentrs  decimal(12, 2),
@customervechiclecashpayment    decimal(12, 2),
@customervechiclechequepayment  decimal(12, 2),
@customervechiclechequeno   decimal(12, 2),
@customervechiclechequedate decimal(12, 2),
@customervechiclebankbranch varchar(100),
@customervechicleistransferred  bit,
@customervechicletransferredname    int,
@customervechicledescription    varchar(500),
@customervechicleservicetaxrs   decimal(12, 2),
@customervechiclepermit decimal(12, 2),

@renewstartdate datetime,
@renewenddate   datetime,
@renewamtbima   decimal(12, 2),
@renewamtpassing    decimal(12, 2),
@renewamtpermit decimal(12, 2),
@renewamtcng    decimal(12, 2),
@renewtype varchar(20),

@branchid   int,
@createduserid  int,
@createddatetime    datetime,
@updateduserid  int,
@updateddatetime    datetime

as
begin

insert into tbl_customervechicle 
values(@customervechiclerefno, @customervechicleregdate, @customervechiclebillno, @customervechiclecustomername, @customervechicleno,
@customervechicleamt, @customervechiclebima, @customervechiclepassing, @customervechiclepassingpenalty, @customervechiclecf, @customervechiclecard, 
@customervechiclecerti, @customervechicleop, @customervechicleagentfee, @customervechiclefile, @customervechiclebalta, @customervechiclecng,  
@customervechicleexpiry, @customervechicleguarantee, @customervechiclehp, @customervechiclediscount,  @customervechicletotalpayment, @customervechicledp,
@customervechicleloan, @customervechicleper, @customervechicleservicetax, @customervechiclemonth, @customervechicleinstallmentrs, @customervechiclecashpayment,
@customervechiclechequepayment, @customervechiclechequeno, @customervechiclechequedate, @customervechiclebankbranch, @customervechicleistransferred, 
@customervechicletransferredname, @customervechicledescription, @branchid, @createduserid, @createddatetime,
@customervechicleservicetaxrs)

if (@customervechiclebima > 0)
    Begin
            INSERT INTO tbl_renew values(@customervechiclecustomername,@renewstartdate, @renewenddate, @renewamtbima, @branchid, @createduserid, @createddatetime, 'BIMA')
    End
End

if (@customervechiclepermit > 0)
    Begin
            INSERT INTO tbl_renew values(@customervechiclecustomername,@renewstartdate, @renewenddate, @renewamtpermit, @branchid, @createduserid, @createddatetime, 'PERMIT')
    End   
End

if (@customervechiclepassing > 0)
    Begin
            INSERT INTO tbl_renew values(@customervechiclecustomername,@renewstartdate, @renewenddate, @renewamtpassing, @branchid, @createduserid, @createddatetime, 'PASSING')
    End   
End

if (@customervechiclecng > 0)
    Begin
            INSERT INTO tbl_renew values(@customervechiclecustomername,@renewstartdate, @renewenddate, @renewamtcng, @branchid, @createduserid, @createddatetime, 'CNG')
    End   
End

end

Now, in this query I have created four if condition, at excute time it shows the error i.e. "Incorrect syntax near the keyword 'if'."

This error shows in third and fourth if condition [as per the store procedure suggest]

I am totally confuse that why this error shows in third and fourth if condition while the syntax is right for my thinking.

Upvotes: 1

Views: 694

Answers (1)

HoneyBadger
HoneyBadger

Reputation: 15150

if doesn't need it's own end, so you have a double end with each if: one which ends the begin and one which is not connected.

if (@customervechiclebima > 0)
    Begin
            INSERT INTO tbl_renew values(@customervechiclecustomername,@renewstartdate, @renewenddate, @renewamtbima, @branchid, @createduserid, @createddatetime, 'BIMA')
    End
--End

Upvotes: 2

Related Questions