2013-05-14 17 views
0

我是新增的存儲過程。無法檢測存儲過程中的錯誤

我寫了下面的存儲過程:

create proc sp_TaxBrock 
as 
BEGIN 
    Declare @intTax int,@intBrockrage int,@sum int 
    set @intTax = (select Tax from partyRegister where partyCode = '0L036') 
    set @intBrockrage = (select brockrage from partyRegister where partyCode = '0L036') 

    set @sum = @[email protected] 

    select @sum 
    print @sum 
    /*print @[email protected];*/ 
go 

這是導致此錯誤:

Msg 102, Level 15, State 1, Procedure sp_TaxBrock, Line 12
Incorrect syntax near '@sum'.

沒能找到什麼是錯。

我嘗試在不同位置添加分號(;),但錯誤仍然存​​在。

請幫幫我。

+0

備註:您應該**不要**爲存儲過程使用'sp_'前綴。微軟已經保留了這個前綴以供自己使用(參見*命名存儲過程*)](http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx),以及你將來有可能冒着名字衝突的風險。 [這對你的存儲過程性能也是不利的](http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix)。最好只是簡單地避免使用'sp_'並將其他內容用作前綴 - 或者根本沒有前綴! – 2013-05-14 09:01:23

+0

另:此分配:'set @intTax =(從partyRegister中選擇稅額,其中partyCode ='0L036')'可以更簡單地寫爲'select @intTax =來自partyRegister的稅款where partyCode ='0L036''如果您可以* *當然**,只有一行將符合這個標準 – 2013-05-14 09:01:59

+0

@marc_s耶,thanx我會記住這些事情。謝謝。 – Freelancer 2013-05-14 09:04:57

回答

6

go之前添加end

create proc sp_TaxBrock 
as 
BEGIN 

    Declare @intTax int,@intBrockrage int,@sum int 
    set @intTax =(select Tax from partyRegister where partyCode='0L036') 
    set @intBrockrage=(select brockrage from partyRegister where partyCode='0L036') 

    set @sum = @[email protected] 

    select @sum 
    print @sum 
/*print @[email protected];*/ 
end 
go 
+0

ohh,thanx,由於END,這是錯誤的。 – Freelancer 2013-05-14 08:46:39