如何为所有表的存储过程T-SQL设置NO LOCK



我希望我的表不会被锁定。是否可以为存储过程中的所有表设置NO LOCK。如果我有很多这样的表,最好的方法是什么:

select * from t1
join t2 ..
join t3 .. with (nolock)
select * from t4
join t4 ..
join t5 etc...
 with (nolock)

您可以在查询级别设置:

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

与NOLOCK一样,这允许脏读取。

如果脏读取是一个问题,您可以使用"隔离级别快照"进行研究:这将创建数据库的常规快照并将其用于计算。不利的一面是,此副本需要额外的内存。

最新更新