标题:[求助]请教一个关于存储过程的小问题
只看楼主
ymaozi
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2007-7-19
 问题点数:0 回复次数:6 
[求助]请教一个关于存储过程的小问题

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-07-24 10:33
lzalibabalr
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-7-31
得分:0 
SELECT @ov=-1 from H_MEMBER WHERE LOGINNAME=RTRIM(LTRIM(@userName))
就是付值的意思. 在表loginname里有@usename这个用户的话,就把 -1付值给@ov
2007-08-02 13:37
ymaozi
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2007-7-19
得分:0 

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


明知不可为而为之
ymaozi's blog:[url=http://www.][/url]
2007-08-03 13:00
lzalibabalr
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-7-31
得分:0 
SELECT @ov=-1 from H_MEMBER WHERE LOGINNAME=RTRIM(LTRIM(@userName))

这句就是检查这个@username是否已经注册过了,去掉@ov=-1就变成
SELECT from H_MEMBER WHERE LOGINNAME=RTRIM(LTRIM(@userName))当然错了,语法都不对.
2007-08-04 00:31
西风独自凉
Rank: 8Rank: 8
等 级:贵宾
威 望:43
帖 子:3380
专家分:28
注 册:2007-8-2
得分:0 

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

2007-08-04 09:39
ymaozi
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2007-7-19
得分:0 

试过!

答案待找!


明知不可为而为之
ymaozi's blog:[url=http://www.][/url]
2007-08-08 09:50
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
得分:0 
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-08-08 10:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-157649-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.252610 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved