以下存储过程实现的功能是首先在表中统计出符合条件的行数,没有的话,返回0,有的话返回行数和所需信息。但是,这个存储过程老是发生死锁的问题,我也不知道问题出在哪里,还望高手指点!
1、该存储过程还有优化的可能吗?
2、该存储过程如何才能避免死锁?
CREATE procedure mysp_GetData @CurNbr char(6) 
as
declare @Nbr int select @Nbr=count(*) from lt_Jz where card_id=@CurNbr
if (@Nbr=0)
begin
select 0,0,0,0,0,0,''
return 0
end
else
begin
select @Nbr cnt,id,month(jz_ds) mm_s,day(jz_ds) dd_s,month(jz_de) mm_e,day(jz_de) dd_e,child_id from lt_Jz where card_id=@CurNbr
return 1
end
GO
不胜感激!!!

解决方案 »

  1.   

    1、该存储过程还有优化的可能吗?
    --CREATE procedure mysp_GetData @CurNbr char(6) 
    as select isnull(month(jz_ds),0) mm_s,isnull(day(jz_ds),0) dd_s,isnull(month(jz_de),0) mm_e,isnull(day(jz_de),0) dd_e,isnull(child_id,0) from lt_Jz where card_id=@CurNbr
    return @@rowcountGO
    2、该存储过程如何才能避免死锁?
    死锁是由其它程序造成的
      

  2.   

    你的总行通过return @@rowcount返回
      

  3.   

    多谢 happyflystone(没枪的狙击手) !