Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 存储过程中的更新_Sql_Sql Server_Stored Procedures - Fatal编程技术网

Sql 存储过程中的更新

Sql 存储过程中的更新,sql,sql-server,stored-procedures,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=@slas

我在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') 

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

update tbl_Students set Firstname = @sfirstname, lastname=@SLastname ,email=@SEmail 
where studentid=@studentsrid 
编辑:
还要检查列名Firstname是否有大写字母,但lastname没有,是否与表中的一样?

执行过程时不要使用大括号。用这个

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

这里的@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'

错误是什么?在未发布错误的情况下,切勿发布“I get a error”。除非OP特别选择区分大小写的排序规则,否则列名不区分大小写,因此这无关紧要。正确,但从存储过程和它不工作的事实来看,我猜排序规则设置为区分大小写的。我认为这无关紧要,因为它不区分大小写
Declare@TemP int=12;选择@teMp是否出现错误?:)在存储过程@prabhatg的哪一行中单独运行它。关键是,变量不区分大小写,除非明确指定它取决于服务器配置是否区分大小写@PrabhatGYes,但我敢打赌大多数服务器都没有设置为区分大小写的排序规则。这就是OP的问题所在,他们从不费心详细说明他们犯了什么错误:每个人都只是盲目猜测,并试图解释为什么他们自己的猜测可能是正确的。@Bha15如果答案解决了您的问题,请将答案标记为已接受。还要注意的是,如果你在提到错误时引用了错误,那么另外两个人就不会浪费时间写关于不同原因的答案了。是的,你可以从投票控件下方的绿色勾号中看到这一点。