首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我应该使用哪些锁提示(T-SQL)?

我应该使用哪些锁提示(T-SQL)?
EN

Stack Overflow用户
提问于 2009-01-30 20:10:51
回答 4查看 17.2K关注 0票数 17

我想实现一个原子事务,如下所示:

BEGIN TRAN A

SELECT id
FROM Inventory
WITH (???)
WHERE material_id = 25 AND quantity > 10

/*
Process some things using the inventory record and
eventually write some updates that are dependent on the fact that
that specific inventory record had sufficient quantity (greater than 10).
*/

COMMIT TRAN A

问题是,还有其他事务消耗我们库存中的数量,所以在选择记录和在事务A中写入更新这段时间内,该记录可能成为无效选择,因为它的数量可能已经降低到WHERE子句中的阈值以下。

因此,问题是我应该在WITH子句中使用哪些锁定提示,以防止在我完成更新和提交事务之前更改所选的库存记录?

编辑:因此,多亏了John,一个好的解决方案似乎是将事务隔离级别设置为可重复读取。这将确保“在当前事务完成之前,其他事务都不能修改当前事务读取的数据”。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/497049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档