SQL Server 2005事务隔离级别的作用域规则是什么?我知道不同的级别意味着什么,但不知道如何在手动运行脚本之外正确地应用它们。我找不到一份适用于生产质量代码的实用指南。
显然,作用域从使用类似以下命令开始:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
但是它会在哪里结束呢?如果我在存储过程中设置了ISO级别,然后该过程调用另一个过程,那么嵌套的过程是否继承它?更好的是,如果我在嵌套的过程中提升了ISO级别,它会传递回调用的过程吗?像BEGIN TRAN、ROLLBACK和COMMIT这样的事务命令是否有任何区别?
当应用程序或代理作业调用存储过程时,隔离级别更改是否以某种方式持久化?我总是需要在每个过程结束时恢复默认的READ COMMITTED吗?
我想在不同情况下进行测试,但我不知道如何读取当前隔离级别被设置为什么。