gpt4 book ai didi

sql-server - 这种 .NET/SQL Server 事务场景是否可行?

转载 作者:行者123 更新时间:2023-12-01 12:52:48 25 4
gpt4 key购买 nike

我刚刚意识到我根本不了解 .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 秒的时间 block 在事务上下文中的表中)?

最佳答案

是的,您可以让其他进程看不到您在显示的事务中所做的更改。为此,您需要更改其他进程,而不是进行修改的进程。

打开快照隔离并对其他读取进程使用IsolationLevel.Snapshot。他们将看到表格处于您进行任何修改之前的状态。他们不会阻止(等待)。

关于sql-server - 这种 .NET/SQL Server 事务场景是否可行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12736388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com