在MSSQL中使用事务,更新几个表

时间:2015-05-21 14:41:15

标签: sql-server

我需要进行健全检查; [我的一位客户表示,他认为他不应该看到数据。

示例,更新2个表

BEGIN TRANSACTION;
  update table1...
  update table2...
COMMIT TRANSACTION;

问题 - 在table2中的更新完成之前,可以触发数据库中的单独连接来读取table1的更新吗?

2 个答案:

答案 0 :(得分:2)

是的,如果您将其他读取事务的隔离级别设置为uncommited,则可以。 https://msdn.microsoft.com/en-us/library/ms173763(v=sql.110).aspx

如果启动两个Sql Management Studios并在没有在一个窗口中提交的情况下运行事务,那么很容易测试,然后尝试在另一个窗口中选择不同的隔离级别。

答案 1 :(得分:1)

是的,如果您的隔离级别设置为未提交读取,则可能。
查看以下提供的隔离级别:

dbcc useroptions

https://msdn.microsoft.com/en-us/library/ms173763.aspx
http://blog.sqlauthority.com/2010/05/24/sql-server-check-the-isolation-level-with-dbcc-useroptions/