sql server 2005 sp4 x86 on win7 x86 存储过程调用时出现了上面的错误提示: 当前命令发生了严重错误。应放弃任何可能产生的结果。
代码和原因如下:
begin
begin tran
begin try
...
if Exists(select ID from TableName where Amount < UsedAmount)
begin
set @ErrMessage = 'a reason'
return(1)
end
end try
begin catch
if (@@TranCount > 0)
rollback tran
set @ErrMessage = ERROR_MESSAGE()
return(1)
end catch
if (@@TranCount > 0)
commit tran
return(0)
end
错误的原因是:在try结构中尝试直接退出,正确的写法是:
if Exists(select ID from TableName where Amount < UsedAmount)
raiserror('a reason!', 16, 1)
这错误提示不错,我以为硬盘故障了。