昂捷论坛≡零售最前线≡□-技术研讨会 → 纠正一个容易产生的sql错误认识


  共有24710人关注过本帖树形打印

主题:纠正一个容易产生的sql错误认识

帅哥哟,离线,有人找我吗?
飞絮
  1楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:中校 帖子:594 积分:6649 威望:0 精华:56 注册:2005/10/21 18:45:15
纠正一个容易产生的sql错误认识  发帖心情 Post By:2006/9/25 17:06:17


declare @sort_id int

select @sort_id=10

select @sort_id=20 from sysobjects where 1=2

select @sort_id

你认为@sort_id是多少?

是 10,20 还是 NULL


使用IE9无法添加附件的解决方法 支持(0中立(0反对(0回到顶部
帅哥哟,离线,有人找我吗?
飞絮
  2楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:中校 帖子:594 积分:6649 威望:0 精华:56 注册:2005/10/21 18:45:15
  发帖心情 Post By:2006/9/25 18:04:54

对,不是null,那么以下程序就隐含了错误:

 select top 1 @sort_id=c_sort from tb_o_wg (nolock) where c_id=@id and c_adno=@adno
 if isnull(@sort_id,0) = 0 
 begin
  select @msg = '本单有商品部门为限制部门,序号'+rtrim(ltrim(str(@sort_id)))+'!'
  raiserror 99999 @msg
  return(-1)
 end 

 select top 1 @sort_id=c_sort from tb_o_wg (nolock) where c_id=@id and isnull(c_pt_cost,0)=0
 if isnull(@sort_id,0) > 0
 begin
  select @msg = '本单有无成本的商品,序号'+rtrim(ltrim(str(@sort_id)))+'!'
  raiserror 99999 @msg
  return(-1)
 end

应注意避免这种隐藏较深的逻辑错误


使用IE9无法添加附件的解决方法 支持(0中立(0反对(0回到顶部
帅哥哟,离线,有人找我吗?
boom
  3楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:下士 帖子:12 积分:177 威望:0 精华:0 注册:2006/1/11 22:56:25
  发帖心情 Post By:2006/10/10 9:39:20

顶一下

使用IE9无法添加附件的解决方法 支持(0中立(0反对(0回到顶部