2013-05-14 4 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_' 접두사를 사용하지 말아야합니다 **. Microsoft는 [자체 저장을 위해이 접두어를 예약했습니다 (* 저장 프로 시저 명명 * 참조)] (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_'를 피하고 다른 것을 접두어로 사용하는 것이 가장 좋습니다. –

+0

또한 다음과 같이 할 수 있다면 partyRegister에서 'select @intTax = Tax partyCode ='0L036''가 될 때'set @intTax = (partyRegister에서 partyCode = '0L036'으로 세금 선택) * 확실 ** ** 단 한 행만이 기준에 부합합니다 –

+0

@marc_s 예, 고맙습니다.이 점을 명심하십시오. 고맙습니다. – Freelancer

답변

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

오, 고맙습니다 END로 인해 오류가 발생했습니다. – Freelancer

관련 문제