Sql 查询级别的NOLOCK

Sql 查询级别的NOLOCK,sql,sql-server,sql-server-2008,nolock,read-uncommitted,Sql,Sql Server,Sql Server 2008,Nolock,Read Uncommitted,我有一个运行SQL server表的查询,在这个查询中,我不关心确切的计数。因此,我想为该查询指定NOLOCK。但是,查询本身由多个子查询和多个连接组成;所以,把诺洛克放在周围是很肮脏的 尽管我可以为表设置事务级别“READ-UNCOMMITTED”,但这也会改变所有其他查询的事务级别。我想更改该特定查询的事务级别,但不在多个位置的查询中指定NOLOCK。这可能吗?“但这也会改变所有其他查询的隔离级别”-事务隔离级别是在会话级别定义的,不会影响其他会话-您可以在该特定查询之前和之后更改隔离级别。

我有一个运行SQL server表的查询,在这个查询中,我不关心确切的计数。因此,我想为该查询指定NOLOCK。但是,查询本身由多个子查询和多个连接组成;所以,把诺洛克放在周围是很肮脏的


尽管我可以为表设置事务级别“READ-UNCOMMITTED”,但这也会改变所有其他查询的事务级别。我想更改该特定查询的事务级别,但不在多个位置的查询中指定NOLOCK。这可能吗?

“但这也会改变所有其他查询的隔离级别”-事务隔离级别是在会话级别定义的,不会影响其他会话-您可以在该特定查询之前和之后更改隔离级别。所以我不清楚你们关心的是什么“其他查询”会影响这个结果。所以,如果我在执行这个语句之前改变。它不会影响在相同表上运行的其他查询吗?它们是否会继续使用以前的事务级别运行?是的,正如我所说,这是在会话级别定义的。其他会话将使用他们选择的任何隔离级别。那么,如何才能使特定表的事务级别在全局级别上发生更改?我很确定这不能为特定表全局设置。