2017-08-28 68 views
1

我正在通過sql server 2008r2中的查詢創建存儲過程。在存儲過程中,我使用多個條件插入具有多個查詢的數據。在存儲過程中關鍵字'if'附近的語法不正確

這裏是我的查詢

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 

現在,在此查詢我已經創建了四個if條件,在EXCUTE時候它顯示的錯誤,即「‘如果’關鍵字附近有語法錯誤。」

此錯誤顯示在第三和第四,如果條件[按商店程序提示]

我完全混淆爲什麼這個錯誤在第三和第四if狀況顯示,而語法是正確的我的思維。

+4

你有2個'END's per'IF' ....爲什麼? – Lamak

+0

爲什麼在一個'IF'後面找到2'End' –

+0

你可以在哪裏告訴我行號或狀態? –

回答

2

if並不需要它自己的end,讓您擁有一個雙end每個if:其中一個結束begin和一個未連接。

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

它的完成。謝謝。 –

相關問題