在MS SQL Server中,如果我在存储过程中使用"SET TRANSACTION ISOLATION LEVEL“,是否需要将select语句包装在BEGIN/END TRANSACTION块中?下面的工作会像预期的那样工作吗?
CREATE PROCEDURE my_sproc AS
BEGIN
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SELECT * FROM MyTable
END发布于 2010-12-10 23:17:46
TRANSACTION ISOLATION LEVEL设置是连接级设置。不需要将其包装在事务中。
这就是说,你知道你会从这个设置中有脏读和类似的东西吗?
您可以通过使用锁定提示在逐个查询的基础上完成相同的操作,例如:
SELECT * FROM MyTable WITH (NOLOCK)
发布于 2010-12-10 23:18:18
设置事务隔离级别与BEGIN/COMMIT/ROLLBACK不同
没有直接的联系或交互:不同的概念
https://stackoverflow.com/questions/4410232
复制相似问题