2013-05-14 2 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

Также: этот параметр: 'set @intTax = (выберите Tax from partyRegister, где partyCode = '0L036')' можно записать гораздо проще, чем 'select @intTax = Налог от partyRegister, где partyCode = '0L036'', если вы можете быть * * Конечно **, что только одна строка будет соответствовать этим критериям –

+0

@marc_s yeah, thanx, я буду иметь в виду эти вещи. Спасибо. – Freelancer

ответ

6

Добавить end до go.

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

Смежные вопросы