Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从“读取未提交”恢复数据库事务级别的正确方法_Sql_Sql Server - Fatal编程技术网

Sql 从“读取未提交”恢复数据库事务级别的正确方法

Sql 从“读取未提交”恢复数据库事务级别的正确方法,sql,sql-server,Sql,Sql Server,我必须从过度更新的表中获取数据。肮脏的阅读对我来说不是问题。我决定在存储过程中使用readuncommitted 然后我在选择之前添加了这一行: SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 我了解到这段代码的作用域是连接,而不是nolock。我听说你应该在工作完成后将其更改为默认值,对吗 我必须加上吗 SET TRANSACTION ISOLATION LEVEL READ COMMITTED 终点线?我在web上找不到任何在工作完成后恢

我必须从过度更新的表中获取数据。肮脏的阅读对我来说不是问题。我决定在存储过程中使用readuncommitted

然后我在选择之前添加了这一行:

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
我了解到这段代码的作用域是连接,而不是nolock。我听说你应该在工作完成后将其更改为默认值,对吗

我必须加上吗

SET TRANSACTION ISOLATION LEVEL READ COMMITTED
终点线?我在web上找不到任何在工作完成后恢复隔离级别的示例。有什么例子吗

一次只能设置一个隔离级别选项,并且在显式更改之前,该选项将一直为该连接设置。除非语句的FROM子句中的表提示为表指定了不同的锁定或版本控制行为,否则事务中执行的所有读取操作都按照指定隔离级别的规则进行操作

如果在存储过程或触发器中发出SET TRANSACTION ISOLATION LEVEL(设置事务隔离级别),当对象返回控件时,隔离级别将重置为调用对象时的有效级别。例如,如果在批处理中设置可重复读取,然后批处理调用一个存储过程,该存储过程将隔离级别设置为SERIALIZABLE,当存储过程将控制权返回给批处理时,隔离级别设置将恢复为REPEATABLE READ


存储过程中设置的事务级别不会被调用方继承。