一个容易SQL语句的优化

一个简单SQL语句的优化
if(exists(select * from #abc where id= @nowid))
select @moneycount= moneycount from #abc where id= @nowid;

这个查询查了两次,第一次判断记录是否存在,存在再查一次,将钱赋给变量,觉得很不科学,尝试直接
select @moneycount= moneycount from #abc where id= @nowid;

if @moneycount is null

        set @moneycount = 0;
但是不行,因为如果select * from #abc where id= @nowid这条记录不存在,会在
select @moneycount= moneycount from #abc where id= @nowid;这个阶段给@moneycount赋一个乱七八糟的数字值,不是null,请问高手有何方法可以解决

------解决方案--------------------
先判断也不失为好的习惯,反正没数据的话一般不影响性能
------解决方案--------------------
楼主不用担心,在不造成明显效率问题的前提下,用sql进行数据check也是常用手法和代码严谨的表现