私は、最初にレコードが存在するかどうかをチェックするストアドプロシージャを持っています。既に存在する場合は、updates ステートメントを実行します (update ステートメントが正常に機能し、影響を受ける行を返す場合は、値が -1000 の変数を返しません)。それ以外の場合は、値が -2000 の変数を選択します。
問題は、SQLサーバーで実行すると正常に動作しますが、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