@@ERROR全局变量 ,你只要判断他的值就好了.你看一下@@ERROR的帮助

解决方案 »

  1.   

    try:while <循环条件>
    begin
    ...--我的循环体
    insert into table1('input')
    valus (表达式...)
    ...
    if @@error = 0
    insert into table2(status,error)
    valus('1','no error')--如果本次循环成功,则为1,否则为0,如果为0,则将系统报错信息记录到error字段
    else
    insert into table2(status,error)
    valus('0',@@error)--如果本次循环成功,则为1,否则为0,如果为0,则将系统报错信息记录到error字段end
      

  2.   

    --类似这样处理while <循环条件>
    begin
    ...--我的循环体
    insert into table1('input')
    valus (表达式...)
    ...

    if @@error=0
    insert into table2(status,error)
    values('1','no error')
    else
    insert into table2(status,error)
    select 0,description from master..sysmessages
    where error=@@error
    end
      

  3.   

    zjcxc(邹建) :你的方法会不会使得整个循环停下来呢
      

  4.   

    如果循环体中的某一次insert失败怎么办?语句就不会执行下去了阿
      

  5.   

    严重错误就肯定停.SQL中没有 on error resume的,如果你需要忽略所有错误,只有在前台去插入.
      

  6.   

    应该不行,Sql出错的话,下面的语句不会执行。
      

  7.   

    换前台处理吧,SQL对错误处理是很弱的.
      

  8.   

    问题就在这里啊,我只能在存储过程里面写我有一个想法,不知道可不可以,也许很好笑,能不能用到触发器呢?如果@@error=0就触发。触发器的内容是
    写入错误信息--〉移去错误内容--〉执行存储过程