问: SYBASE 存储过程 ,为什么执行到这一句就不执行了 select @nSerialNo = serialno from schedule where phonenum= @strPhoneNum and type = @n" name="description" />

sybase存储过程问题

发表于:2007-06-22来源:作者:点击数: 标签:
MI LY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">问: SYBASE 存储过程 ,为什么执行到这一句就不执行了 select @nSerialNo = serialno from schedule where phonenum= @strPhoneNum and type = @n

   

MILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">问: SYBASE存储过程,为什么执行到这一句就不执行了

select @nSerialNo = serialno from schedule where phonenum= @strPhoneNum and type = @nType

if @@rowcount = 0

begin

...

end

else

begin

...

end

上面的select结果是空记录集,存储过程一执行到空记录集,就会返回?

答:if exists(select @nSerialNo = serialno from schedule where phonenum= @strPhoneNum and type = @nType)这个语句的逻辑有点问题?

if exists
一般是用来确定是否存在类似的记录?你现在又要将存在的结果赋值?其实还不如写 if existsselect 1 from schedule where phonenum= @strPhoneNum and type = @nType)

确定是否存在这样的记录,在执行相应的处理。



原文转自:http://www.ltesting.net