2015-07-01 200 views
-1

(当i型spGetNamebyID 1实施例)我不能执行我的SP执行存储过程

这是我的代码

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 

我得到这个错误信息

消息201,级别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

消息137,15级,状态2,行1 必须声明标量变量“@Name”。 –

0

我想我明白了。您必须包括申报和打印

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