日期:2014-05-19  浏览次数:20360 次

执行存储过程的问题
在调用存储过程时,存储过程中有句语句出了错,由于在.net中用了异常捕获这个错误,所以存储过程中出错语句后的语句就没有往下执行了,但是我是想让这个存储过程继续执行,不让.net来处理。请问在存储过程中应该怎么设置?

------解决方案--------------------
在存储过程中做错误处理
且不要拋出錯誤,即不要用RAISERROR(@ErrStr,11,1)
------解决方案--------------------
那為什麼不這樣?
if exists(selec 1 from table1 where id1= '1 ')
begin
update...
insert...
end
else
begin
insert into table1(id1) values( '1 ')
insert into table2(id2) values( '3 ')
end


------解决方案--------------------
1.看是什么错误了,级别高的错误,执行不得不挺
2.sql server 2005中可以使用try...catch...finally的异常捕捉机制了,
分离了正常流和exception handler
3.sql server 2000中,使用@@error,执行完可能会出错的语句后,马上将@@error变量保存,因为@@error是系统的,执行一句变一次.

============
www.windbi.com