gpt4 book ai didi

sql-server - SQL Server 是否将 Select...Insert 查询包装到隐式事务中?

转载 作者:行者123 更新时间:2023-12-02 17:26:18 24 4
gpt4 key购买 nike

当我执行 select/Insert 查询时,SQL Server 是否会自动创建隐式事务并将其视为一个原子操作?

执行以下查询,将值插入表中(如果表中尚不存在该值):

INSERT INTO Table1 (FieldA)
SELECT 'newvalue'
WHERE NOT EXISTS (Select * FROM Table1 where FieldA='newvalue')

如果没有显式地将“newvalue”包含在事务中,则在 WHERE 子句的计算和 INSERT 子句的执行之间是否有可能由另一个用户将“newvalue”插入到表中?

最佳答案

您对事务和锁定感到困惑。如果出现任何错误,事务会将您的数据恢复到原始状态。如果没有,它将把数据移动到新的状态。处理操作时,您的数据永远不会处于间歇状态。另一方面,锁定是允许或阻止多个用户同时访问数据的方法。为了回答您的问题, select...insert 是原子的,只要没有显式请求粒度锁,则在 select..insert 正在进行时,其他用户将无法插入。

关于sql-server - SQL Server 是否将 Select...Insert 查询包装到隐式事务中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1071286/

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