我有一个存储过程,它首先检查一些记录是否存在。如果已经存在,则执行更新语句(如果更新语句工作正常,则返回受影响的行,否则返回值为 -1000 的变量),否则它选择值为 -2000 的变量。
问题是如果我在 sql server 中执行它可以正常工作,但是当我从 C# 调用它时,它返回 current_indent('') 或者只返回 -1 没有 -1000 或 -2000。
USE [youfuntube]
GO
ALTER PROCEDURE [dbo].[usp_change_pass]
@e_mail varchar(60),
@old_pass varchar(27),
@new_pass varchar(27)
AS
BEGIN
declare @exist int;
Set @exist =0;
Select @exist=COUNT( userinfo_signup.e_mail) from userinfo_signup where userinfo_signup.e_mail=@e_mail;
if(@exist>0)
BEGIN
SET @exist=0;
SELECT @exist= COUNT ( userinfo_signup.e_mail) from userinfo_signup Where userinfo_signup.e_mail=@e_mail And userinfo_signup.password=@old_pass;
if(@exist>0)
Begin
UPDATE userinfo_signup
Set password=@new_pass
Where e_mail=@e_mail AND password=@old_pass;
Select IDENT_CURRENT( 'userinfo_signup');
End
ELSE
begin
Set @exist=-1000;
SELECT @exist;
end
END
ELSE
BEGIN
SET @exist=-2000;
Select @exist;
END
END
GO