create table  #tmpValue (sValue varchar(300) )
insert into #tmpValue execute('s v e g hc [] cccccffffffff  ')
if @@error<>0 select 'error'
else select 'ok'
drop table #tmpValue
这样可以执行到if,
可是我在存储过程里写的,if不会执行下去,直接返回一个空值
什么时候@@error那句IF语句会执行下去,什么时候会直接返回啊

解决方案 »

  1.   

    当 Microsoft&reg; SQL Server&#8482; 完成 Transact-SQL 语句的执行时,如果语句执行成功,则 @@ERROR 设置为 0。若出现一个错误,则返回一条错误信息。@@ERROR 返回此错误信息代码,直到另一条 Transact-SQL 语句被执行。您可以在 sysmessages 系统表中查看与 @@ERROR 错误代码相关的文本信息。
      

  2.   

    若出现一个错误,则返回一条错误信息
    ============
    可是有时候太严重了他就直接退出了,下面的语句(if @@error ...)就执行不到了