首页 新闻 搜索 专区 学院

存储过程的问题

0
悬赏园豆:10 [已关闭问题]

请帮我看看这个存储过程有什么语法问题,应该改成什么样子呢?其实,我是想如果没有用户名/密码的话返回一个0,还有别的方法吗?谢谢!

ALTER PROCEDURE IsHaveUser
 (
 @UserName varchar(50),
 @Password varchar(50) OUTPUT
 )
AS
    declare @count int
 SET @Password= (SELECT Password FROM UserAndPassword WHERE UserName=@UserName)
 SET @count = (SELECT count(Password)
               FROM (SELECT (*)
                       FROM UserAndPassword
                       WHERE UserName = @UserName))
 RETURN @count

问题补充: 错误出在倒数第5—倒数第2行
思念的主页 思念 | 初学一级 | 园豆:170
提问于:2008-10-02 18:32
< >
分享
其他回答(3)
0

select 本就可以为变量赋值,既用set 又用select显然不对.

将SET @count = (SELECT count(Password).........
改为SELECT @count= count(Password).........
              

加冰的可乐 | 园豆:410 (菜鸟二级) | 2008-10-02 20:52
0

set @count = (select count(*) from userAndPassword where UserName = @UserName)

不要太多无意义的嵌套查询

Gray Zhang | 园豆:17610 (专家六级) | 2008-10-03 16:09
0

 应该是 SELECT @count=COUNT(Password)

zjy | 园豆:3194 (老鸟四级) | 2008-10-10 16:38
0
Code
ALTER PROCEDURE IsHaveUser
(
@UserName varchar(50),
@Password varchar(50) OUTPUT
)
AS
DECLARE @count int
IF(NOT EXISTS(SELECT [Password] FROM UserAndPassword WHERE UserName=@UserName))
BEGIN
@count=0
END
RETURN @count
孙英雄 | 园豆:857 (小虾三级) | 2008-10-10 17:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册