在存储过程里加上事务,这样写行吗?

lls0104 2004-08-31 05:05:14
begin tran
语句一.....
if @@error<>0
begin
rollback tran
return
end

--有个判断
语句二.....
if @@error<>0
begin
rollback tran
return
end
语句三.....
if @@error<>0
begin
rollback tran
return
end
commit tran

如果这样写不行,有没有好办法呢?

...全文
242 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
General521 2004-08-31
  • 打赏
  • 举报
回复
你的写法可以的
laker_tmj 2004-08-31
  • 打赏
  • 举报
回复
up learn
Andy__Huang 2004-08-31
  • 打赏
  • 举报
回复
你那樣寫不太好,給你一個例子

CREATE PROC develop.procInsert @orderNo varchar(4),@orderName varchar(20),@orderNum numeric(10,2)
AS
BEGIN TRAN
SET NOCOUNT ON
SET ANSI_WARNINGS OFF
DECLARE @numError numeric(12,2)
DECLARE @numCur numeric(6)
SET @numError=0

INSERT INTO new_ks.develop.TabX(order_no,order_name,order_num)
VALUES(@OrderNo,@OrderName,@OrderNum)
SET @numError=@@ERROR
IF @numError<>0 GOTO errhandle
SET @numCur=@@IDENTITY

INSERT INTO Northwind.develop.TabY(order_no,order_name,order_num)
VALUES(@OrderNo,@OrderName,@OrderNum)
SET @numError=@@ERROR
IF @numError<>0 GOTO errhandle
SET @numCur=@@IDENTITY

COMMIT TRAN
SELECT 1

errhandle:
IF @numError<>0
BEGIN
ROLLBACK TRAN
SELECT 0
END
GO

lanjiagui 2004-08-31
  • 打赏
  • 举报
回复
if @@error<>0
rollback tran
else
commit tran
return
呵呵,少了begin和end。

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧