在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
答案 0 :(得分:3)
TRANSACTION ISOLATION LEVEL
设置是连接级别设置。没有必要将它包装在交易中。
话虽如此,你知道你会从这个环境中读取脏读等内容吗?
您可以使用锁定提示(例如:
)逐个查询地完成相同的操作 SELECT * FROM MyTable WITH (NOLOCK)
答案 1 :(得分:1)
SET TRANSACTION ISOLATION LEVEL与BEGIN / COMMIT / ROLLBACK不同
没有直接链接或互动:不同的概念