存储过程中的更新

时间:2017-07-10 08:49:19

标签: sql sql-server stored-procedures

我在SQL Server中制作SP以进行更新。 SP已成功创建,但在执行时显示错误。下面是SP和执行。请帮帮我。

alter procedure updaterecored(@studentsrid int,
@sfirstname varchar(50), @slastname varchar(20), @semail varchar(50))
as 
begin   
update tbl_Students set Firstname = @sfirstname, lastname=@slastname, email=@semail
where studentid=@studentsrid
end

然后执行

 exec updaterecored(4, 'dipika', 'Sharma', 'ds@gmail.com') 

3 个答案:

答案 0 :(得分:2)

执行程序时,请勿使用大括号。使用此

 exec updaterecored 4,'dipika','Sharma','ds@gmail.com'

答案 1 :(得分:0)

更新语句中的变量与您传递的变量不匹配。 @SEmail和@semail是不同的值。将SP中的更新语句更改为

update tbl_Students set Firstname = @sfirstname, lastname=@SLastname ,email=@SEmail 
where studentid=@studentsrid 

编辑: 还要检查你的专栏名称Firstname有一个大写但是姓氏不是,你的表格中是否有这样的名字?

答案 2 :(得分:0)

这里有问题你有@semail和@SEmail是两个不同的变量。我已经更改了下面的代码。现在它应该可以工作。

 alter procedure updaterecored(@studentsrid int,
    @sfirstname varchar(50),@SLastname varchar(20),@SEmail varchar(50))
    as 
    begin   
    update tbl_Students set Firstname = @sfirstname, lastname=@slastname,email=@SEmail
    where studentid=@studentsrid
    end


-- exec updaterecored 4,'dipika','Sharma','ds@gmail.com'