如何在SQL Server 2005中更改默认的TRANSACTION ISOLATION LEVEL?

时间:2009-11-03 22:51:54

标签: sql-server isolation-level

我知道SQL Server中的默认TRANSACTION ISOLATION LEVEL是“read committed”。如果我想将其更改为“READ UNCOMMITTED”,我该如何更改此配置?

注意:我不能使用SET TRANSACTION ISOLATION LEVEL,它仅适用于当前会话。我无法在查询中添加NOLOCK,因为涉及数千个查询。

由于


感谢您的回答。我们可以阅读脏行。在我们的案例中,更新也不是问题。但是,我真的想要更改隔离级别的默认配置。请帮助。

我不能“将交易隔离级别设置为不安全”。我必须做出全球变化。


我们仔细审查了快照隔离级别。它们不能在我们的情况下使用。

2 个答案:

答案 0 :(得分:3)

我真的不认为你应该在全球范围内设定它。你应该非常谨慎地设置它,因为你可能会遇到很多不同的问题:

  • 丢失更新
  • 不可重复读取
  • 脏读
  • 幻影读

无法在数据库或服务器级别设置此项 - 只能在连接级别设置。

您在数据库级别可以做的最好的事情是设置ALLOW_SNAPSHOT_ISOLATIONREAD_COMMITTED_SNAPSHOT属性。在这里阅读更多内容:

http://msdn.microsoft.com/en-us/library/tcbchxcb%28VS.80%29.aspx

答案 1 :(得分:1)

What about

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

它只适用于当前的交易。