SQL Server 2005 当前命令发生了严重错误 应放弃任何可能产生的结果

本文介绍了一个 SQL Server 2005 SP4 在 Windows 7 x86 平台上运行时出现的存储过程错误,并详细解释了错误发生的原因及如何修正该错误。错误发生在尝试直接从 TRY 块中返回时,正确的做法是使用 RAISERROR 来抛出错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)


这错误提示不错,我以为硬盘故障了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值