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
--类似这样处理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
zjcxc(邹建) :你的方法会不会使得整个循环停下来呢
如果循环体中的某一次insert失败怎么办?语句就不会执行下去了阿
严重错误就肯定停.SQL中没有 on error resume的,如果你需要忽略所有错误,只有在前台去插入.
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
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
写入错误信息--〉移去错误内容--〉执行存储过程