永发信息网

sql server 2000中有try catch吗

答案:2  悬赏:70  手机版
解决时间 2021-02-24 08:54
  • 提问者网友:城市野鹿
  • 2021-02-24 01:35
sql server 2000中有try catch吗
最佳答案
  • 五星知识达人网友:十鸦
  • 2021-02-24 03:07
sql server 2000这个版本中是没有try catch的语法的。
在Sql 2000中,为了成功执行这个存储过程,我需要在每一条语句后面去判断@@ERROR,如果有错,则执行回滚.
在SQL2005版本及以上才提供此语法,可对待程序代码一样处理Sql中的异常:

BEGIN TRY
BEGIN TRANSACTION
--删除卡的记录
delete from ObjTransportCard where CardId=@CardId
--删除交易的记录
delete from ObjTransaction where CardId=@CardId
COMMIT
END TRY

BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK

DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int
SELECT @ErrMsg = ERROR_MESSAGE(),
@ErrSeverity = ERROR_SEVERITY()

RAISERROR(@ErrMsg, @ErrSeverity, 1)
END CATCH
全部回答
  • 1楼网友:杯酒困英雄
  • 2021-02-24 03:53
没有!你既然用了事务,怎么不这么写
begin tran
insert into student values('dsa','sad',2)
declare @id int
select @id=max(id) from student
insert into jl(jnr) values(@id)
IF @@Error<>0
BEGIN
PRINT '有错误,回滚'
ROLLBACK TRANSACTION--事务回滚语句
END
ELSE
BEGIN
PRINT '成功,提交'
COMMIT TRANSACTION--事务提交语句
END
end
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯