请看一下这个简单的SQL 语句..

panxiaosen 程序员  2008-03-12 05:46:15
在一个商业游戏服务器端里有下面这样一个存储过程,
CREATE PROCEDURE LOAD_USER_DATA
@id char(21)
AS

DECLARE @nRet smallint
SET @nRet = 0

SELECT @nRet = COUNT(strUserId) FROM USERDATA WHERE strUserId = @id
IF @nRet = 0
RETURN 0


SELECT Nation, Race, Class, HairColor, Rank, Title, [Level], [Exp], Loyalty, Face, City FROM USERDATA WHERE strUserId = @id

RETURN 1

红色部分可不可以去掉呢?改成下面这样??

CREATE PROCEDURE LOAD_USER_DATA
@id char(21)
AS

SELECT Nation, Race, Class, HairColor, Rank, Title, [Level], [Exp], Loyalty, Face, City FROM USERDATA WHERE strUserId = @id

if @@ROWCOUNT=0
RETURN 0
ELSE
RETURN 1
...全文
68 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
dawugui 2008-03-12
你那句是干嘛的没看明白.

不过之前的
SET @nRet = 0
这句到是多余的.
回复
zheninchangjiang 2008-03-12
you should not use procedure,your server will do at least one select sql.
direct use select sql to fetch rows,and the client does the job.
回复
ssc16864 2008-03-12
可以的。
回复
zzr82528 2008-03-12
[Quote=引用 7 楼 panxiaosen 的回复:]
如果按我那样的改的,两句SELECT变成一句,是不是会省点资源? 但是商业的游戏那样写应该也有他的道理吧?
[/Quote]
在查不到的时候,改之后更浪费资源。
可以测试一下。
本来为空,查不到,却要查一遍。
从功能上说没什么问题,如果要效率,最好实际测试一下。
回复
pt1314917 2008-03-12

IF NOT EXISTS (SELECT 1 FROM USERDATA WHERE strUserId = @id )
return 0
回复
ma_yan_jun_78 2008-03-12
子木 :按你改的就没有判断了.
无枪狙击手 方法及分析都很正确
回复
panxiaosen 2008-03-12
如果按我那样的改的,两句SELECT变成一句,是不是会省点资源? 但是商业的游戏那样写应该也有他的道理吧?
回复
panxiaosen 2008-03-12
[Quote=引用 4 楼 happyflystone 的回复:]
效率低,而且浪费服务器资源
[/Quote]

是说原来的代码比较浪费资源吗?
回复
dobear_0922 2008-03-12
可以,,,
回复
-狙击手- 2008-03-12
效率低,而且浪费服务器资源
回复
-狙击手- 2008-03-12
商业游戏服务器端考虑效率
回复
-狙击手- 2008-03-12

SELECT @nRet = COUNT(strUserId) FROM USERDATA WHERE strUserId = @id
IF @nRet = 0
RETURN 0

-------------

可以写成:
IF NOT EXISTS (SELECT 1 FROM USERDATA WHERE strUserId = @id )
return 0
回复
青锋-SS 2008-03-12
应该可以
回复
相关推荐
基于java的企业人事管理系统设计--软件工程课程设计(含源码与论文设计).rar 1 引言 4 1.1 课程设计目标 4 1.2 编程工具(编程环境)介绍 4 1.3 实施时间及主要实施步骤 4 2 需求分析 5 3 系统总体设计 6 4 数据库设计 6 5 主要功能模块的设计与实现 10 5.1 功能模块1详细设计(综合查询员工信息)..........................................................10 5.1.1 详细设计.......................................................................................................10 5.1.2 算法流程........................................................................................................15 5.1.3 界面设计及测试结果.....................................................................................15 6 调试分析 15 7 用户手册 16 8 测试结果 17 8.1 员工信息的添加...................................................................................................17 8.2 员工信息的修改...................................................................................................17 8.3 员工信息的删除...................................................................................................18 8.4 员工信息的综合查询...........................................................................................18 8.5 员工信息按性别统计的结果................................................................................19 8.6 员工信息按状态统计的结果...............................................................................19 8.7 员工信息按职称统计的结果................................................................................20 9 结论 20 10 参考文献 20
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-03-12 05:46
社区公告
暂无公告