sqlserver中的rollback transaction要跟COMMIT TRAN成对存在吗?我这种结构写怎么报错了EXECUTE 后的事务计数指示 BEGIN 和 COMMIT 语句的数目不匹配.上一计数 = 2,当前计数 = 3.BEGIN TRAN tran1 SAVE TRAN tranpoin
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/30 03:52:45
![sqlserver中的rollback transaction要跟COMMIT TRAN成对存在吗?我这种结构写怎么报错了EXECUTE 后的事务计数指示 BEGIN 和 COMMIT 语句的数目不匹配.上一计数 = 2,当前计数 = 3.BEGIN TRAN tran1 SAVE TRAN tranpoin](/uploads/image/z/14173762-58-2.jpg?t=sqlserver%E4%B8%AD%E7%9A%84rollback+transaction%E8%A6%81%E8%B7%9FCOMMIT+TRAN%E6%88%90%E5%AF%B9%E5%AD%98%E5%9C%A8%E5%90%97%3F%E6%88%91%E8%BF%99%E7%A7%8D%E7%BB%93%E6%9E%84%E5%86%99%E6%80%8E%E4%B9%88%E6%8A%A5%E9%94%99%E4%BA%86EXECUTE+%E5%90%8E%E7%9A%84%E4%BA%8B%E5%8A%A1%E8%AE%A1%E6%95%B0%E6%8C%87%E7%A4%BA+BEGIN+%E5%92%8C+COMMIT+%E8%AF%AD%E5%8F%A5%E7%9A%84%E6%95%B0%E7%9B%AE%E4%B8%8D%E5%8C%B9%E9%85%8D.%E4%B8%8A%E4%B8%80%E8%AE%A1%E6%95%B0+%3D+2%2C%E5%BD%93%E5%89%8D%E8%AE%A1%E6%95%B0+%3D+3.BEGIN+TRAN+tran1++++++SAVE+TRAN+tranpoin)
sqlserver中的rollback transaction要跟COMMIT TRAN成对存在吗?我这种结构写怎么报错了EXECUTE 后的事务计数指示 BEGIN 和 COMMIT 语句的数目不匹配.上一计数 = 2,当前计数 = 3.BEGIN TRAN tran1 SAVE TRAN tranpoin
sqlserver中的rollback transaction要跟COMMIT TRAN成对存在吗?
我这种结构写怎么报错了
EXECUTE 后的事务计数指示 BEGIN 和 COMMIT 语句的数目不匹配.上一计数 = 2,当前计数 = 3.
BEGIN TRAN tran1
SAVE TRAN tranpoint --保存事务点
SET @TRANCOUNT=@@TRANCOUNT
PRINT '进入子事务后全局@@TRANCOUNT:'+CAST(@TRANCOUNT AS VARCHAR(50))
begin try
IF (@OrderType='1')
BEGIN --1
IF @OrderStatus=4
BEGIN--2
IF asas=1
BEGIN--3
END--3
ELSE
BEGIN--3
print '失败,回滚事务.'
rollback transaction tranpoint
SET @TRANCOUNT=(select @@TRANCOUNT)
PRINT '回滚子事务后全局@@TRANCOUNT:'+CAST(@TRANCOUNT AS VARCHAR(50))
return -1
END--3
END--2-
ELSE
BEGIN--2
print '失败,回滚事务.'
rollback transaction tranpoint
SET @TRANCOUNT=(select @@TRANCOUNT)
PRINT '回滚子事务后全局@@TRANCOUNT:'+CAST(@TRANCOUNT AS VARCHAR(50))
return -1
END--2
END--1
----------提交事务------------------
end try
begin catch
/**根据是否有错误,确定事务是提交还是回滚*/
print '失败,回滚事务.'
rollback transaction tranpoint
SET @TRANCOUNT=(select @@TRANCOUNT)
PRINT '回滚子事务后全局@@TRANCOUNT:'+CAST(@TRANCOUNT AS VARCHAR(50))
return -1
end catch
print '成功,提交事务,写入硬盘'
commit transaction tran1
SET @TRANCOUNT=(select @@TRANCOUNT)
PRINT '提交子事务后全局@@TRANCOUNT:'+CAST(@TRANCOUNT AS VARCHAR(50))
return 1
sqlserver中的rollback transaction要跟COMMIT TRAN成对存在吗?我这种结构写怎么报错了EXECUTE 后的事务计数指示 BEGIN 和 COMMIT 语句的数目不匹配.上一计数 = 2,当前计数 = 3.BEGIN TRAN tran1 SAVE TRAN tranpoin
rollback 是回滚事务,只要没有commit提交,还可以恢复之前的数据.commit是提交事务,你不提交事务,你之前所有更改的数据别人在查看是看不到只能看到之前的数据,commit提交以后,别人才可看到你更新后的数据