我创建了一个用户登录表,然后新建了一个登录验证的储存过程:
USE [SD]
GO
/****** Object: StoredProcedure [dbo].[userLogin] Script Date: 10/23/2013 18:56:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[userLogin]
@username NVarchar(50) ,@password NVarchar(150)
AS SELECT *from users where Username=@username and Password=@password;
执行储存过程:
USE [SD]
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[userLogin]
@username = N'12',
@password = N'12'
SELECT 'Return Value' = @return_value
GO
不解的是该行内容查询出来了,然而'Return Value却显示为0.正常情况应该是为1.如果为0,那么我用户登录便一直等录失败。
请问这是哪里做错了,该怎样解决啊 大婶门@CSharperSQL2008,储存过程
USE [SD]
GO
/****** Object: StoredProcedure [dbo].[userLogin] Script Date: 10/23/2013 18:56:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[userLogin]
@username NVarchar(50) ,@password NVarchar(150)
AS SELECT *from users where Username=@username and Password=@password;
执行储存过程:
USE [SD]
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[userLogin]
@username = N'12',
@password = N'12'
SELECT 'Return Value' = @return_value
GO
不解的是该行内容查询出来了,然而'Return Value却显示为0.正常情况应该是为1.如果为0,那么我用户登录便一直等录失败。
请问这是哪里做错了,该怎样解决啊 大婶门@CSharperSQL2008,储存过程
你写的是对的,但正常情况下,存储过程执行正确后,会返回0,而不是返回1,除非你在存储过程中写:return 1;那么会返回1的
/*
0
*/
你写的是对的,但正常情况下,存储过程执行正确后,会返回0,而不是返回1,除非你在存储过程中写:return 1;那么会返回1的请问return1;如何加上
把存储过程改一下把:ALTER PROCEDURE [dbo].[userLogin]
@username NVarchar(50) ,@password NVarchar(150)
AS if exists(SELECT 1 from users where Username=@username and Password=@password)
return 1; --验证登陆
else
return 0; --验证失败
go
把存储过程改一下把:ALTER PROCEDURE [dbo].[userLogin]
@username NVarchar(50) ,@password NVarchar(150)
AS if exists(SELECT 1 from users where Username=@username and Password=@password)
return 1; --验证登陆
else
return 0; --验证失败
gook 谢谢了