2015-07-01 3 views
-1

Я не могу выполнить мой SP (пример, когда я типа spGetNamebyID 1)выполнения хранимых процедуры

Вот мой код

alter proc spGetNameByID 
@ID int, 
@Name varchar(50) output, 
@Gender varchar (50) output 
as 
begin 
    Select @Name = Name, @Gender = Gender from tblEmployee where ID = @ID 
end 

Declare @Name varchar(50), @Gender varchar(50) 
Execute spGetNameByID 2, @Name out, @Gender out 
Print 'Name is ' + @Name + ' Gender ' + @Gender 

Я получаю сообщение об ошибке

Msg 201, Level 16 , Состояние 4, Процедура spGetNameByID, Строка 0 Процедура или функция 'spGetNameByID' ожидает параметр '@Name', который не был указан .

+0

'EXEC spGetNameById 2, выход @name, @Gender output' – Tom

ответ

0

Попробуйте

Declare @Name varchar(50), @Gender varchar(50) 
exec spGetNameByID @ID = 2, @Name = @Name output, @Gender = @Gender output 

Вы можете также правой кнопкой мыши на хранимой процедуры в SQL Management Studio, выполните процедуру, и она покажет вам запрос.

+0

Msg 137, уровень 15, состояние 2, строка 1 Должен объявить скалярную переменную «@Name». –

0

Думаю, что я понял. Вы должны включить Declare и печать

Declare @Name1 varchar(50), @Gender1 varchar(50) 
Execute spGetNameByID 2, @Name1 out, @Gender1 out 
Print 'Name is ' + @Name1 + ' Gender ' + @Gender1 
0

Попробуйте написать ваш выполнить строку как этот

Execute spGetNameByID @ID = 2 

и выйти из

, @Name = @Name output, @Gender = @Gender output 
Смежные вопросы