gpt4 book ai didi

sql-server - SQL Server 事务和 SELECT 语句

转载 作者:行者123 更新时间:2023-12-02 05:21:39 26 4
gpt4 key购买 nike

我经常看到很多人在事务中使用SELECT语句。我经常仅在事务中使用插入/更新/删除。我只是不明白在事务中放置 SELECT 语句有什么用处。

我得到一个答案......事务中的SELECT可以看到该事务中其他先前的Insert/Update/Delete语句所做的更改,一个SELECT 语句不能在事务之外。

以上说法是否属实?

这是人们将 SELECT 语句放入事务中的唯一原因吗?如果可能的话,请详细讨论所有原因。谢谢

最佳答案

尝试这样做,你就会明白:

在 SSMS 上打开两个新查询(现在将其称为 A 和 B),并在 A 上创建一个简单的表,如下所示:

create table transTest(id int)
insert into transTest values(1)

现在,执行以下操作:

在两者中都执行select * from transTest。您将看到值 1

运行时:

set transaction isolation level read committed

在 B 运行时:

begin transaction
insert into transTest values(2)

运行时:

从 transTest 中选择 *

您将看到查询无法完成,因为它被 A 上的事务锁定

在 B 运行时:

commit transaction

回到A,你会看到查询完成了

重复测试在 A 上设置读取未提交的事务隔离级别您将看到查询不会被事务锁定

关于sql-server - SQL Server 事务和 SELECT 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9818465/

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