sql server 2000中有try catch吗

要怎么用啊我写了个事务begintranbeginTRYinsertintostudentvalues('dsa','sad',2)declare@idintselect... 要怎么用啊 我写了个事务

begin tran
begin TRY

insert into student values('dsa','sad',2)
declare @id int
select @id=max(id) from student
insert into jl(jnr) values(@id)
commit tran
end TRY
begin catch
rollback tran
end catch

执行
出现服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'TRY' 附近有语法错误。
展开
 我来答
greystar_cn
2015-12-14 · 知道合伙人软件行家
greystar_cn
知道合伙人软件行家
采纳数:16407 获赞数:17260
本人主要从事.NET C#方向的技术开发工作,具有10多年的各类架构开发工作经验。

向TA提问 私信TA
展开全部
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
toneyshi
2009-06-05 · TA获得超过473个赞
知道小有建树答主
回答量:397
采纳率:0%
帮助的人:482万
展开全部
没有!你既然用了事务,怎么不这么写

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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式