2、见分布式事务笔记,底层实现如2PC,3PC长时间阻塞会影响性能。回滚计算机术语,指的是程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为。
CREATE PROC [dbo].[notice_Delete] --- 同时删除该通知书和对应的节点@tbl VARCHAR(30),
@pid INT
AS
BEGIN
DECLARE @tblname VARCHAR(30)
DECLARE @sql VARCHAR(1000)
SET @tblname = @tbl
SET @sql = 'delete ' + @tblname + ' where id ='
+ CONVERT(VARCHAR(10), @pid)
BEGIN TRAN --开始事务
EXEC ( @sql
)
IF ( @@rowcount = 0 ) --执行结果影响行数为0
BEGIN
ROLLBACK TRAN --回滚
END
ELSE
BEGIN
DELETE FROM tbl_treenotice
WHERE purposeid = @pid
IF ( @@rowcount = 0 ) --执行结果影响行数为0
BEGIN
ROLLBACK TRAN --回滚
END
ELSE
BEGIN
COMMIT TRAN --提交事务
END
END
END
不是你怎么写的。首先,你要理解事务的概念。
commit、rollback是在事务处理中,提交、回滚的命令。
其次,你的编辑器,要设置成:不是自动提交数据。
比如:
delect from tabname
此时,如果想提及,则执行:
commit
如果想回滚:
rollback
如果你设置的是 自动提交。
那么你在执行delete后,就自动commit了,也就不能rollback了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)