| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 393 人关注过本帖
标题:[求助]请教一个关于存储过程的小问题
收藏  订阅  推荐  打印 
ymaozi
Rank: 2
等级:注册会员
帖子:87
积分:980
注册:2007-7-19
[求助]请教一个关于存储过程的小问题

CREATE PROCEDURE P_REGIE
@userName varchar(50),
@password varchar(50)
AS
DECLARE @message varchar(100),
@ov int
set @message=''
set @ov=-1
SET NOCOUNT ON
SELECT @ov=-1 from H_MEMBER WHERE LOGINNAME=RTRIM(LTRIM(@userName))
IF @@ROWCOUNT<=0
BEGIN
INSERT INTO H_MEMBER(LOGINNAME,PASSWORD) VALUES(@userName,@password)
SET @message='注册成功!'
SET @ov=0
END
ELSE
BEGIN
SET @message='已经存在相同的用户名!'
SET @ov=100
END
IF @@ERROR <> 0
BEGIN
SET @message='写入数据错误!'
SET @ov=-1
END
SELECT @message as Message,@ov as outputValue

GO


我刚开始学存储过程,所以还有很多的东西不明白!有一个小问题想一下下!

SELECT @ov=-1 from H_MEMBER WHERE LOGINNAME=RTRIM(LTRIM(@userName))

SELECT 后面跟@ov=-1是什么意思呀? 去了就不行了!

搜索更多相关主题的帖子: message  userName  SET  varchar  MEMBER  
2007-7-24 10:33
lzalibabalr
Rank: 2
等级:注册会员
帖子:40
积分:500
注册:2007-7-31

SELECT @ov=-1 from H_MEMBER WHERE LOGINNAME=RTRIM(LTRIM(@userName))
就是付值的意思. 在表loginname里有@usename这个用户的话,就把 -1付值给@ov
2007-8-2 13:37
ymaozi
Rank: 2
等级:注册会员
帖子:87
积分:980
注册:2007-7-19

赋值,我当然知道,只是不知道这句话的用意,去了就不能运行了!


明知不可为而为之
ymaozi's blog:[url=http://www.codedesign.cn]codedesign.cn[/url]
2007-8-3 13:00
lzalibabalr
Rank: 2
等级:注册会员
帖子:40
积分:500
注册:2007-7-31

SELECT @ov=-1 from H_MEMBER WHERE LOGINNAME=RTRIM(LTRIM(@userName))

这句就是检查这个@username是否已经注册过了,去掉@ov=-1就变成
SELECT from H_MEMBER WHERE LOGINNAME=RTRIM(LTRIM(@userName))当然错了,语法都不对.
2007-8-4 00:31
西风独自凉
Rank: 12Rank: 12Rank: 12
等级:版主
威望:38
帖子:3250
积分:31613
注册:2007-8-2


去掉也可以
把它换成*不就得了

2007-8-4 09:39
ymaozi
Rank: 2
等级:注册会员
帖子:87
积分:980
注册:2007-7-19

试过!

答案待找!


明知不可为而为之
ymaozi's blog:[url=http://www.codedesign.cn]codedesign.cn[/url]
2007-8-8 09:50
Kendy123456
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:62
帖子:2694
积分:27044
注册:2007-1-3

set @ov=-1
SET NOCOUNT ON
SELECT @ov=-1 from H_MEMBER WHERE LOGINNAME=RTRIM(LTRIM(@userName))
IF @@ROWCOUNT<=0
BEGIN
INSERT INTO H_MEMBER(LOGINNAME,PASSWORD) VALUES(@userName,@password)
SET @message='注册成功!'
SET @ov=0
END

这一句赋值对于@ov来说是没有意义的 无论username是否存在 @ov的值都是-1
这行代码影响的是系统变量 @@rowcount 所以说用select * from 效果是没有分别的

2007-8-8 10:29
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.053351 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved