我从来没有理解嵌套事务的好处。提交一个嵌套事务不会提交 - 它只会减少@@TRANCOUNT
。和ROLLBACK
回滚一切。嵌套事务的目的
BEGIN TRANSACTION
//do an update
BEGIN TRANSACTION
//do an insert
COMMIT TRANSACTION
COMMIT TRANSACTION
是什么这个区别:
BEGIN TRANSACTION
//do an update
//do an insert
COMMIT TRANSACTION
请给我一个例子,为什么应该嵌套事务中使用,以及它们如何有所作为。
问候,斯托
我可以使用safepoints而不使用嵌套事务。存储过程是一个好点(我从来没有想到这一点)。但是,如果我在事务中不使用存储过程(或者不调用其他代码),为什么我需要嵌套事务?我经常看到嵌套事务的例子,我没有看到它们的重点。 –
那么嵌套事务只有在调用外部事务代码时才有用? –
我同意你的看法,我认为它们对于调用外部事务代码很有用。 SQL Server处理嵌套事务的技术能力很重要,并且在所有数据库系统中都不可用。有一些情况下(如提到的SP - 你应该也使用['SET XACT_ABORT ON']](http://stackoverflow.com/questions/1150032/what-is-the-benefit-of-using-set -xact-abort-on-a-stored-procedure))他们可以在其中“自然地”嵌套。我从来没有使用明确的嵌套事务。 – Lucero