执行存储过程

时间:2015-07-01 17:51:22

标签: sql-server stored-procedures

我无法执行我的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

我收到此错误消息

  

消息201,级别16,状态4,过程spGetNameByID,行0过程   或函数'spGetNameByID'需要参数'@Name',而不是   提供。

3 个答案:

答案 0 :(得分:0)

试试这个

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

您也可以右键单击Sql Management Studio中的存储过程,执行该过程并显示查询。

答案 1 :(得分:0)

我想我明白了。您必须包含声明和打印

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

答案 2 :(得分:0)

尝试像这样编写执行行

Execute spGetNameByID @ID = 2

并遗漏

, @Name = @Name output, @Gender = @Gender output