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

时间:2013-12-16 21:07:52

标签: sql sql-server tsql

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

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

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

2 个答案:

答案 0 :(得分:32)

您可以在查询级别设置:

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

与NOLOCK一样,这允许脏读。

答案 1 :(得分:1)

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