如果我从不提交,我是否需要调用回滚?

时间:2011-11-01 19:39:48

标签: sql sql-server transactions sas

我使用no autocommit连接到SQL Server。如果一切顺利,我会调用commit。否则,我就退出。我是否需要显式调用回滚,或者在我们关闭连接而不提交时自动回滚?

如果重要,我正在SAS中的proc sql中执行SQL命令。

UPDATE:如果没有调用回滚,看起来SAS可能会在proc sql块的末尾自动调用commit。所以在这种情况下,回滚不仅仅是好的做法;这是必要的。

最终更新:我们最终切换到一个新系统,在我看来,这与我们之前的系统相反。在结束事务而不指定提交或回滚时,它将回滚。因此,下面给出的建议绝对正确:始终显式提交或回滚。

1 个答案:

答案 0 :(得分:9)

应该 在连接关闭时回滚。应该强调理由: - )

正确的事务和错误处理应该始终在满足提交条件时提交,而在不满足时提交回滚。我认为完成提交或回滚是一个很好的习惯,而不是依赖断开连接等。所需要的只是一个错误或错误/未关闭的会话为所有人创造阻塞链噩梦: - )