Rss & SiteMap

昂捷论坛 http://www.enjoyit.com.cn

中国零售业界精英论坛!
共3 条记录, 每页显示 15 条, 页签: [1]
[浏览完整版]

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

1楼
飞絮 发表于: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

2楼
飞絮 发表于: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

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

3楼
boom 发表于:2006/10/10 9:39:20
顶一下
共3 条记录, 每页显示 15 条, 页签: [1]

Copyright © 2006-2010 EnjoyIT.com.cn
网友言论或观点与昂捷公司无关!涉及版权/著作权问题请与发帖者直接联系
Powered By Dvbbs Version 8.2.0
Processed in 0.14063 s, 2 queries.