【发布时间】:2012-10-04 21:36:48
【问题描述】:
我刚刚意识到我根本不了解 .NET/SQL Server 事务的工作原理。我觉得我可能会把信封推到“没有愚蠢的问题”,但我读过的所有文档都不容易理解。我将尝试用这样的方式来表达这个问题,答案几乎是是/否。
如果我在一台机器上运行的 .NET 进程有效地执行此操作(不是真正的代码):
For i as Integer = 0 to 100
Using TransactionScope
Using SqlClient.SqlConnection
'Executed using SqlClient.SqlCommand'
"DELETE from TABLE_A"
Thread.Sleep(5000)
"INSERT INTO TABLE_A (Col1) VALUES ('A')"
TransactionScope.Complete()
End Using
End Using
Next i
是否有任何事务/隔离级别配置会使“SELECT count(*) FROM TABLE_A”在从其他进程运行时始终返回“1”(即,即使没有行时有 5 秒的时间块在事务上下文的表中)?
【问题讨论】:
标签: sql-server vb.net transactions transactionscope